401

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?

bruno
  • 103
  • 3
kukis
  • 5,302
  • 6
  • 19
  • 22
  • 4
    Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Jan 23 '17 at 06:45
  • 7
    Are you planning to talk out loud? Or just in your head? – WorkerDrone Jan 24 '17 at 20:35
  • 2
    Lots of crucial missing information: are your coworkers also at opendesks? Would the conversations last more like 30 seconds or 30 minutes? Given that coworkers wear headphones, does the company culture generally allow conversations and phone-calls, at your desk? Do you have a loud voice? etc. – smci Jan 25 '17 at 08:13
  • 65
    Why do you need a duck, when you already have a mouse? – Dennis Jaheruddin Jan 27 '17 at 07:42
  • 79
    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
  • There are a lot of good answers here, so I'll just leave my short thought in a comment: just don't look straight at the duck. I often talk my way through code while looking and pointing at the screen. I don't think anyone would think any less of you if you happen to also have a rubber duck sitting next to you while you do this. – skrrgwasme Jan 27 '17 at 21:16
  • 34
    It's only unprofessional if the duck talks back. – ajb Jan 30 '17 at 01:49
  • @DennisJaheruddin Because ducks are cuter than mice! – LorenzoDonati4Ukraine-OnStrike Jan 30 '17 at 07:50
  • Why not just talk to yourself? You know you're sane, whereas a duck cannot always be trusted. – mbomb007 Jan 30 '17 at 15:53
  • 2
    Maybe you can get a little cartoon/pixelart duck you can put in the corner of your screen to talk to. (It could even animate and nod every now and again!) – Jack Casey Jan 31 '17 at 07:20
  • You only need ask yourself whether you can shrug off any resulting scrutiny or whether your insecurity prevents this and you'll have answered your own (inspiring) question. +1 I'm off to get a rubber duck, a 'Wilson' ball, a drinking bird and some googly eyes for my office supplies! – Brent Hackers Oct 04 '17 at 12:55
  • @mbomb007 If you are debating the trustworthiness of ducks are you sure that you are completely sane? I would trust a duck over someone who thinks like that – Mawg says reinstate Monica Jan 09 '19 at 07:34
  • 1
    @ajb: next q: is it ok to act like a ventriloquist and pretend the ducks talks back giving (oneself) the answers? Alexa the duck... – the gods from engineering Dec 19 '20 at 09:49
  • I would go to a whiteboard in a meeting room. – Thorbjørn Ravn Andersen Dec 27 '21 at 00:12

9 Answers9

439

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".

Philipp
  • 40,012
  • 10
  • 92
  • 143
  • 153
    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
  • 65
    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
  • 27
    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 08:39
  • 49
    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 09:00
  • 40
    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
  • @teego1967 That isn't entirely true - sometimes I talk things differently than I type them. =) – corsiKa Jan 24 '17 at 19:00
  • 2
    @sq33G I've also noticed that the suggestions it gives when you enter the title of the question on the "Ask Question" are much more accurate/relevant than the normal search function. Sometimes, when I'm feeling naughty, I perform my queries from the "Ask Question" page instead. Not sure why the discrepancy in search results, but I have noticed this. – user58446 Jan 24 '17 at 23:23
  • 7
    My favorite is when I'm typing a question like this on SO and an exact duplicate of it comes up in the auto search, and the author of that duplicate was me, from like 3 years ago. Glad you got my back, me-from-the-past. – Jason C Jan 25 '17 at 00:59
  • 1
    Writing down the question and giving sufficient explanation to let someone help you has had very high success rate for figuring it out coding problems for me personally. – Chris Pfohl Jan 25 '17 at 12:15
  • I started to write this answer but never posted it. ;-) – Stéphane Gourichon Jan 25 '17 at 18:37
  • Nitpick: it's Stack Overflow, not stackoverflow. – ArtOfCode Jan 25 '17 at 23:59
  • @sq33G indeed, it is better than the search function. I often use it instead, bang away my question in a roughly grammatical way, until the suggestions answer it. – Davidmh Jan 26 '17 at 16:20
  • 1
    You don't need to post the question on Stack Overflow, because you already know that the answer will be "Use jQuery". – Ed Daniel Jan 26 '17 at 19:42
  • 1
    The major reason I have so many more answers than questions on Stack Overflow is this; every time I try to explain my problem in sufficient detail that someone else could consider it, I inadvertently answer my own question. – Ben Jan 26 '17 at 22:22
  • 1
    In the specific case that the problem you're having is getting a third party library to do what it says on the tin, deciding it's the third party's fault and writing up a bug report often has the same effect! (of causing you to re-examine the false assumption you've been working under that's just outside the circle you've been thinking in for the last hour) – Ben Jan 26 '17 at 22:25
  • I love this answer, as it has the potential to help others around the world who have the same question. HOWEVER! I do find myself treating my colleagues as rubber ducks (though I've only learned the term from this question!) regarding our in-house application, rather than purely technical questions I could ask strangers. Thus, a rubber duck or other synthetic animal could help there where SO can't. – zr00 Jan 08 '19 at 18:24
  • I find the ticketing system a good place for this: if I hit a problem working on an existing ticket, I compose a comment explaining (to the boss or whoever might read it) exactly what the problem is, what I've tried to fix it so far, why that's not worked, etc. etc. If putting the problem into words leads you into a solution, then you don't need to post the comment — but if not, posting it can record your activity and sometimes prompt good advice from colleagues. – gidds Dec 27 '21 at 11:34
337

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/

282

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.

A E
  • 7,154
  • 3
  • 23
  • 29
  • 97
    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
  • 29
    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
  • 120
    @DepressedDaniel If your duck has webbed feet, just email it -- as long as it uses a web-based client, the effect is the same. –  Jan 22 '17 at 22:10
  • 1
    @DepressedDaniel No, a teddy bear works just as well. – ChrisW Jan 22 '17 at 22:56
  • 4
    Carboard cutout programmers also work: http://wiki.c2.com/?CardboardProgrammer – armb Jan 24 '17 at 14:42
  • 1
    This is what I do while trying to figure out while on the bike and in the train. Saves a lot of weird looks from passers-by. – Mast Jan 25 '17 at 12:50
  • 16
    "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
  • 3
    For extra fun, turn off your coworkers' phones when they aren't looking, then call their voicemail. – Jason C Jan 27 '17 at 03:14
  • 2
    Save your money and just IM the ducky via Skype. – user207421 Jan 29 '17 at 06:04
  • 1
    @QPaysTaxes that comment made me laugh out loud at work. Unfortunately I have no duck to blame it on, so I had to share the link to this question! – MDMoore313 Mar 30 '17 at 18:42
52

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.

cde
  • 770
  • 4
  • 14
24

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.

Tan
  • 349
  • 2
  • 2
  • 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
  • 25
    Ah yes, the curse of the hot networks questions list... – Pyritie Jan 24 '17 at 12:22
  • 3
    "Ooo - that's an interesting question" :) – GreenAsJade Jan 25 '17 at 01:44
  • 14
    @Pyritie Indeed, the "the hot networks questions list" is how I arrived here in the first place. Back to work now. :-) – 700 Software Jan 25 '17 at 17:12
  • By far the best suggestion. Rubber ducking sounds and looks quirky, but the more mundane alternative is just wirting down your ideas, methods and plans on paper. I think 95% of the issue i have are solved by drawing it on paper while explaining it to someone else. – Ucinorn Feb 02 '17 at 01:53
  • 1
    Why did I end up reading about world building questions again. I am not even interested in that. – Mr Me May 09 '18 at 12:17
14

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.

BЈовић
  • 1,765
  • 1
  • 20
  • 32
  • 2
    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
  • You can always whisper to the duck... – ecc Jan 24 '17 at 13:39
  • 7
    @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
  • @BЈовић Then learn sign language. Solved. – ecc Jan 24 '17 at 13:58
  • 4
    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 http://sciencenetlinks.com/science-news/science-updates/one-sided-conversations/ – 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
  • 1
    @ecc That doesn't work for some people. If you tape their mouth, they start talking on their ass. – BЈовић Jan 24 '17 at 16:56
  • 1
    well said. Some open plan office environments are so noisy people get physically sick working in them (and then lose their jobs for being "unreliable"). THAT's the consequence of a bunch of people constantly chattering away all around their colleagues all day long. – jwenting Jan 27 '17 at 13:37
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.

IDrinkandIKnowThings
  • 49,880
  • 18
  • 123
  • 210
11

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.

dfundako
  • 6,196
  • 4
  • 25
  • 45
  • 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... –  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. –  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
  • @Patrice You need to ease up on the coffee... :P – Luaan Jan 24 '17 at 13:31
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 !

riroo
  • 71
  • 2
  • 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