5 ms·
A few times a month, I'll look up at one of my colleagues and say, "hey, got a sec? I need to talk to the duck," and they know this means I'm going to talk to t
by davesims 14y ago
A few times a month, I'll look up at one of my colleagues and say, "hey, got a sec? I need to talk to the duck," and they know this means I'm going to talk to their head but they can basically keep doing what they're doing and nod occasionally.
This serves several purposes:
(1) It's less insane-sounding than actually talking to an inanimate object in an open work environment.
(2) It actually feels better and forces me to think more clearly when I'm talking to an actual person -- the cognitive focus is higher when the object of conversation can actually, in theory, think and talk back (YMMV).
(3) And finally, although it does require some focus on the part of the other coder, it's not nearly as taxing to them as actually helping me solve the problem or pairing up with me.
So it's a good compromise somewhere between pair programming and talking to an actual rubber duck. Again, YMMV. Maybe I'll call it "Pair Ducking."
- kamjam 14y agoThis is so true, probably about 90% of the time my colleagues call me over about a problem they are facing, explain in detail what the problem is and then eureka! Most of the time it would actually take me much longer to figure out the exact issue since I don't know the ins/outs and subtleties of the code but it's exactly as you say. Of course, it makes me look really good cos I just "helped" them solve their issue :)
- cientifico 14y agoMaybe because the solution is in asking the good questions.
- kamjam 14y agoYup, for sure it is, sometimes just having someone else there and having to run through all the steps for them points out the obvious. There was another user further down that said he solved a lot of his own problem just typing them out with enough detail to be able to post on StackOverflow. Same principle.
- Swizec 14y agoWorking from home I tend to just write out my thoughts on a piece of paper. It works perfectly.
- pseut 14y agoI send myself an email for the same purpose and set up an alias for /dev/null. It makes keeping notes a lot easier since I have the copy in sent mail and can reply to it as needed in the future. (this approach seemed less crazy before I typed it out...)
- timv 14y agoWhen I work from home (and I did it exclusively for 8 months of last year) I ended up talking to my wife (my 1 yo daughter wouldn't stand still for long enough). My wife is a social worker by training, so it was pretty rare (though not unheard of) for her to be able to give me real input, but over the years I've trained her well enough to follow most of what I'm saying and nod at the right points :)
- jsmeaton 14y agoOn occasion, I'll write a question on stackoverflow and re-read it a few times before hitting submit just in case I get that eureka moment. I think I've written way more non-submitted questions than submitted questions.
- Brandon0 14y agoI do this a lot too. In fact more often than not I end up not posting the question because either I solve the problem or I think of a possible solution I should go try first. I think we should start calling it Digital Rubber Ducking.
- hfsktr 14y agoI am looking for an excuse to make digitalrubberduck(y/ie).com If I was a bit more clever I feel like there is a use there.
- tekromancr 14y agoJust make a programming themed chatterbot,drop some ads (If you are so inclined), and you are golden! Someone posted a plugin for IntelliJ that allows you to do just that. I would use a web based one of it existed.
- danohuiginn 14y agoI have occasionally used eliza for this (the basic chatbot in emacs and elsewhere). I'm sure with a bit of tuning you could make a debugging-centred variant of it.
- tekromancr 14y agoWhat do the Unit Tests say? Have you tried running a debugger and stepping through the code? Hmm, go on. Wait a sec, can you reexplain that last bit?
- 14y ago
- confluence 14y agoI call it the House method :) You bring a detailed problem and break it down, and talk about it to someone else (who often isn't qualified to answer your questions due to knowledge/time constraints) - and in doing so - resolve the problem by challenging one's own assumptions. This was effectively how every House episode was resolved.
- bbrizzi 14y agoWhen I'm stuck on a problem for way too long, I start typing it out in Stack Overflow. Usually by the time I'm done describing it, I've already solved it.
- restlessmedia 14y agoI've lost count the amount of times I've done that. Also, I'm probably the top of the pops in answer replies to my own questions.
- junto 14y agoI also feel guilty when I do this, but at least the answer helps others who might have the same question.
- autotravis 14y agoI think stackoverflow encourages[1] this, so no need to feel guilty. 1. http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answ...
- troebr 14y agoHaha, we called it the House method too, we ended up making a cardboard humanoid for when nobody was available.
- lemming 14y agoAmusingly, IntelliJ has a plugin to do exactly this: https://sites.google.com/site/codeconsultantplugin https://sites.google.com/site/codeconsultantplugin
- davesims 14y agoThat's fantastic. I use IntelliJ for Android stuff, installing now. They should add a 'Duck' mode that just brings up a big picture of the rubber duck.
- enjo 14y agoI have a whiteboard in a closet I use for this... seriously...I go in there and start jotting down notes and talking to myself. It fascinates me how quickly I usually find the answer.