374

I have noticed I have had great success using another co-worker as a metaphorical rubber duck (sometimes intentionally, sometimes unintentionally). It improves my productivity vastly. However, I know that it probably distracts others when I am using them in that way.

That's why I want to buy a literal rubber duck and talk to it. I could do it very quietly and most of my close co-workers use noise-cancelling headphones 80% of time while sitting at their desks. My only concern is other people passing by my desk would think that I am weird. My desk is in an open space and several people pass by it every hour. I work in a big IT company in Sweden (however on my floor besides developers we have HR, marketing and people from high up who might be unfamiliar with the rubber duck method).

Is it unprofessional to talk to a rubber duck at the office?

  • 4
    Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Jan 23 '17 at 6:45
  • 5
    Are you planning to talk out loud? Or just in your head? – WorkerDrone Jan 24 '17 at 20:35
  • 41
    Why do you need a duck, when you already have a mouse? – Dennis Jaheruddin Jan 27 '17 at 7:42
  • 54
    Personally, I open up Stack Overflow and start typing a question. Their rules demand for a pretty comprehensive question; so in the process the answer strikes me anyway most of the time before I'm finished with the question. :) – cst1992 Jan 27 '17 at 12:02
  • 6
    It's only unprofessional if the duck talks back. – ajb Jan 30 '17 at 1:49
318

In the IT world, this is pretty much accepted so long as you aren't interrupting someone else (which is the point of using the duck or teddy bear or whatever in the first place).

I've set it up in some work places I've been at which didn't already have it, and it became accepted and normal almost overnight.

If you are still worried about looking like an idiot talking to a rubber duck, print out an explanatory note ("why am I talking to a rubber duck?!? Read this to find out...") or give people links to http://www.rubberduckdebugging.com/

398

If you want to be quiet, start describing your problem as a question on stackoverflow. There were numerous times where I started writing a question and found the solution while explaining the problem.

You could also start to write the documentation of your code even before it is finished. I had various moments where I wrote the documentation of some code I wrote, and in the middle of it noticed "wait a minute, that's not what I programmed".

  • 140
    Yes, this is the way to go. The act of formulating a question whether it be verbal or written is what helps you. "Rubber ducking" has nothing to do with a rubber duck. The only problem with stackoverflow is that you will sometimes get back an instant withering dismissal of your question if you actually post it. – teego1967 Jan 22 '17 at 17:31
  • 61
    100% agreed with this. I have written maybe 20x more SO questions than I've actually ended up posting thanks to how well this works. – Matthew Read Jan 23 '17 at 23:25
  • 22
    Also, if the question could be useful for others and fits the site, consider polishing it and posting an answer yourself. – kapex Jan 24 '17 at 8:39
  • 45
    And one more advantage, SO will do a great job suggesting existing Q's that match what you're right in the middle of writing. – sq33G Jan 24 '17 at 9:00
  • 34
    I often find my solution while writing down my SO questions. Then I just answer myself for posterity. Ocasionally, I find my own questions on google months later. – ecc Jan 24 '17 at 13:38
247

Leave the duck at home, put on a phone headset and talk to the duck's voicemail.

Fellow software engineers will understand what you're doing, sales or HR people will think you're on the phone (which you will truly be) and won't be weirded out.

  • 87
    Good idea, but for a bonus, keep the rubber duck too. So you can actually talk to the duck but it will seem like you are talking to someone on the headset. – Evan Carslake Jan 22 '17 at 19:26
  • 23
    I always thought the webbed feet of the rubber duck were an essential part of the debugging process. – DepressedDaniel Jan 22 '17 at 21:40
  • 105
    @DepressedDaniel If your duck has webbed feet, just email it -- as long as it uses a web-based client, the effect is the same. – Nic Hartley Jan 22 '17 at 22:10
  • 4
    Carboard cutout programmers also work: wiki.c2.com/?CardboardProgrammer – armb Jan 24 '17 at 14:42
  • 13
    "Leave the duck at home, put on a phone headset and talk to the duck's voicemail." I've been on Stack Exchange for 3 1/2 years and the whole time I was just waiting to read this sentence. Thank-you A E – paj28 Jan 26 '17 at 21:20
51

This what FaceTime or Web ex or any number of video conferencing technologies are for. Give the Duck his own computer (all competent developers should have one), and start a video conference with it. The duck will provide the answer you need without having to physically be there.

Alternatively, a blue tooth headset would work. Society has quickly been conditioned to ignore people on blue tooth headsets without thinking they are just crazies talking to themselves or worse, to a rubber duck.

  • 15
    How will the duck accept the incoming FaceTime call? – Zach Lipton Jan 23 '17 at 0:50
  • 7
    @ZachLipton Auto Answer. – cde Jan 23 '17 at 1:32
  • 22
    I seriously don't understand what video conferencing adds to the situation. You still have to talk out loud, and if anyone sees what's on your screen, you'll seem way crazier for having set your duck up with its own device. I'm not sure the rubber duck technique should go on if you're giving your duck its own IP address. – Chris Hayes Jan 24 '17 at 7:47
  • 8
    No need for a whole separate computer. Just fire up a VM. Once set up, it can even run headless, as long as you aren't into rubber chicken debugging. – a CVn Jan 24 '17 at 12:20
  • 9
    Make sure the duck is wearing a headset. Somebody's going to see through it and think you're weird if they see you FaceTiming with a duck that doesn't even have audio equipment hooked up. – Josh1billion Jan 26 '17 at 22:34
23

A more quiet but as effective solution in my experience can be to simply write down your current situation, doubts and questions in an email or draft thereof.

The idea is similar to Philipp's suggestion of writing it down as a stackoverflow question but might be less distractive if you are, like I am, often curious about random questions and their possible answers.

  • 1
    This is an excellent suggestion, and has the additional bonus of having a record of your conversation. You can use email or just notepad, and if you feel you may have typed up something of importance for later, go ahead and sent it/save it. Use notepad as a text messenger or IM client for that instant-reply feature, too! – ArmanX Jan 23 '17 at 19:35
  • 21
    Ah yes, the curse of the hot networks questions list... – Pyritie Jan 24 '17 at 12:22
  • 2
    "Ooo - that's an interesting question" :) – GreenAsJade Jan 25 '17 at 1:44
  • 13
    @Pyritie Indeed, the "the hot networks questions list" is how I arrived here in the first place. Back to work now. :-) – George Bailey Jan 25 '17 at 17:12
  • 1
    Why did I end up reading about world building questions again. I am not even interested in that. – Mr Me May 9 '18 at 12:17
14

Short Answer:

In most cases, no. It is not uncommon for people to use techniques such as rubber duck debugging in software-centric businesses or departments. If a company is more business-centric in its culture, then there may be concerns from management who are not familiar with the method.

Long Answer:

The culture of many modern software-centered offices would allow for a variety of common (if odd, to the outside world) developer practices, such as talking to a rubber duck. However, if you work in an environment where verbalizing your process to a rubber duck would be considered distracting or frowned upon, there are other, more silent alternatives you could consider:

Compose a Letter

Whether via text, hand-written, or diagramed, composing a note as if you were explaining the software to someone else can be used in a similar method to verbal rubber duck debugging.

Chat With a (Secure) Bot

If you find yourself more effectively debugging when you bounce ideas off of another person instead of an inanimate object, you could download and build the numerous open-source chat bots available.

One example is the original chatbot: Eliza, designed to use Rogerian psychotherapy methods for conversing. Eliza comes standard in copies of Emacs, for those who use prefer it as a text editor. The one thing to remember is to use a secure chatbot, if you have concerns about leaking corporate or trade secrets.

Utilize Unconventional Tools

If your issue is that you are having difficulty approaching your problem from a new perspective to gain clarity on the issue and find a solution, then a variety of similar techniques exist for reframing your perspective.

One example is to use an external prompt of some kind, such as a deck of cards, a set of story dice, or a tarot deck where each card has a predefined meaning. Comparing your software to these prompts forces you to draw unconventional parallels and think of your software issues in new ways.

Another example is to attempt to draw your software as a physical machine, to describe the relationships between the components. In doing so you may realize how you intended the software to operate is missing a key step somewhere.

The benefit of using unconventional debugging techniques is that it forces you to think creatively, and can help to unblock your process when you find yourself in a mental rut. The downside is that how easy it becomes to get off track from your goal, and find yourself spending more time finding parallels than you are actually accomplishing development goals.

12

Since other answers tell that it is acceptable, I can only assume they never worked in an open office. Or noise do not disturb them.

I worked and I know how bad it can be. And no headphone is going to help you. That being said, I would throw you and your duck out of the window as soon as you start talking to it in open space. It is absolutely unacceptable to add additional disruption and noise to an environment that is already bad enough.

If you have to talk to your duck, go close yourself in a meeting room (or whatever you got there), and discuss without disturbing your colleagues further.

  • 1
    You're missing the point entirely. The whole thing is to avoid distracting your colleagues - the alternative is to talk to one of them instead, which introduces a discussion, which quickly tends to involve every single guy in the open office. Rubber ducking doesn't require talking out loud, and if you want to (some people think much better when they actually physically talk), you can easily take your duck with you to a meeting room, bathroom, coffee, whatever. – Luaan Jan 24 '17 at 13:34
  • 5
    @Luaan I am not. The OP wants to talk to his rubber duck in the open office in front of his colleagues. If that is not clear enough, go read the question again. Both (talking to colleagues and to a duck) are very distracting. From the question it is not clear if he is actually going to hide in a meeting room. – BЈовић Jan 24 '17 at 13:38
  • 6
    @ecc I was unfortunate enough to have a guy next to me, who talked to himself all the time. So, even without a duck, this mumbling annoyed hell out of people. – BЈовић Jan 24 '17 at 13:46
  • 3
    It is scientifically harder to tune out half a conversation than a whole one. I would find this extremely distracting and obnoxious. If you truly want to avoid disturbing your coworkers, you need to either be silent or move to a meeting space sciencenetlinks.com/science-news/science-updates/… – thumbtackthief Jan 24 '17 at 16:33
  • 3
    you shouldn't try to talk in open space, even if you have been thrown out of an airlock. – Malachi Jan 24 '17 at 16:44
10

Set the duck under or beside your monitor and either very quietly or silently talk out the issue. Having a loud conversation with a duck will be understood by some, but not by most. It is also distracting.

The alternative is to use your colleagues more since your duck has one main flaw: it can't ask questions back or offer alternatives to your methods/thinking. Working on your interpersonal interactions with a colleagues, doing code reviews, seeing alternative methods and solutions to an issue, these will all be immensely helpful in your career. It will raise your profile among your peers and your management will most likely notice your increase in productivity as you pointed out.

When it comes time to promote someone or pick someone to lead a high profile project, your colleagues and manager will be able to give you a good recommendation based on how well you work with others and how your work is above standard. Your duck, on the other hand, won't have much to offer at all.

  • But I am doing all of that you mentioned. Should there be any harder problems I would encounter, then I would definitely ask my colleague. I am talking about day to day use. – kukis Jan 22 '17 at 13:32
  • 3
    @kukis It is only unprofessional if it becomes a distraction to yourself or others. If you talk loud enough to bother someone, it is unprofessional. If you hold it in your hand like Hamlet and speak to it, unprofessional. If you blow off a code review because your duck is preferred, unprofessional. If you need to talk out loud, book a private room in the office somewhere and hash it out with your duck. – dfundako Jan 22 '17 at 13:38
  • 12
    The entire point of using a duck or other stand in is so you do not disturb colleagues - the role the duck plays is NOT to answer the question, but for you to have to verbalise the question, and that often leads you to pose the problem in a way that merely thinking about it does not do, which often leads you to a conclusion before the person you are asking can offer an opinion. So the advice to "use your colleagues more" is entirely against the point here... – Moo Jan 22 '17 at 15:00
  • Also, having conversations with the duck should not interfere with colleagues any more than having conversations on the phone does - in neither case the colleague can hear the "other side" of the conversation. – Moo Jan 22 '17 at 15:00
  • 5
    @Moo the duck doesn't answer your questions? I've been doing it so wrong.... – Patrice Jan 22 '17 at 22:11
7

I work with about 8 other colleagues in the same room. Some of them put headsets on all the time and some not. I also have the feeling that explaining my code to myself or to a colleague improves my productivity too. I don't have a rubber duck but I talk to myself in "whisper modus" like quietly in order not to disturb the others. And by the time, I noticed that a lot of other colleagues also do the same. Talking to yourself makes you avoid writing stupid code and makes you also solve some difficult problems you might not be able to solve alone but with your ego maybe.

As a developer, you are allowed to do whatever you're pleased too. This is at least what I gained from my different experiences with different companies. Do not be afraid of looking weird. All the developers are weird and we do not care about what others think of that. It's our own concern. If your boss or a any higher management people tells you it's not professional, try to explain the rubber duck method to them in a "professional" way. I'm pretty sure you'll find a rubber duck on their desk too after some days !

  • the reason those colleagues have noise canceling headsets on is because others in the office are talking all the time, disturbing them. If that goes on enough, a loud/noisy office environment is very bad for productivity and can cause serious health problems. – jwenting Jan 27 '17 at 13:34

protected by Community Jan 24 '17 at 15:54

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.