It’s often said the best ideas come in the shower, but finding the best solution? That’s reserved for the bath, or more precisely, a beloved bath time accessory. But some rubber ducking is also helpful for programmers.
If you’ve worked with enough programmers, chances are you’ve noticed a bathtime friend, aka a rubber duck, on one or two desks. More than just kitschy clutter, these little yellow ducks are a god-send when it comes to debugging and problem-solving in code. To an outsider, it might seem absurd, but “rubber ducking” isn’t just for the seasoned programmer.
Here’s how this seemingly silly technique can change the way you tackle problems beyond lines of code.
What is Rubber Ducking?
The origins of rubber ducking come from a reference in the book, The Pragmatic Programmer, where the authors tell the story of a programmer who carried around and spoke to a rubber duck whenever his code ran into issues.
Why are rubber ducks such good listeners? In a pinch, any inanimate object will do, but the duck is meant to stand in for the computer.
A computer, or a duck, doesn’t see the world as humans do. When programmers run into a problem with code, it’s often because they’re not thinking like a computer. As a human, they could be making assumptions about what the computer does and does know based on human experience.
Chatting with a rubber duck reminds programmers that the experience of the computer is different than their own. They have to be precise and think more like a computer to be able to explain the issue to the duck.
While it was born in the world of programming, anyone can see the benefits of talking to a duck. These little yellow birds see the world differently than we do and can help you to examine your issue in a new light. There’s nothing you can’t talk about with a duck (they’re great at keeping secrets!), and they’d be a perfect partner to help talk through your elevator pitch, newsletter, or latest business projections.
How to Rubber Duck
Rubber ducking might take a little practice, and some humility, to get started, but once you get over talking to a little yellow duck, it’s actually pretty easy.
Here’s how it works:
1. Rangle up a duck, a teddy bear, or a very young child–basically find something to talk to that can’t talk back.
2. Start chatting. Explain what your code, or what you wanted in general, at a high level. Then begin digging into details. For a coder, that means explaining a program line by line, but for others, that may mean explaining the steps that you took before meeting with the duck. Remember, don’t assume the duck knows anything–so you’ll have to be precise, giving enough explanation to ensure the duck’s following along.
3. The duck points out the issue. 9/10 times, as you explain what is supposed to happen in the code or during a sales pitch, you’ll notice that’s not actually what’s happening. Of course, ducks are very modest, and likely won’t claim responsibility for getting you out of this jam.
A Rubber Duck Can Help Anyone
You might think talking to a duck is silly, but it shows an important element of problem-solving that many of us forget about. Simply talking through an issue, in-depth, can illuminate things we hadn’t thought of, or mistakes we made along the way.
Once we take a problem out of our heads and start to explain it, it can take on a different light. You start to realize things you hadn’t considered before, or you’ll find yourself explaining why you did something one way instead of the other.
Rubber ducking started as a tool for programmers, but it’s valuable for anyone who needs a new approach to problem-solving. Whether it’s a marketing email you can’t crack, or a team issue that needs addressing, try taking it to a duck first.
Of course, you can’t break down problems line by line like a code, but you can speak through your process with the little duck or with trusted listeners and advisors. Sometimes just verbalizing an issue to a coach or a group of your fellow CEOs can help you understand it better than thinking it through in your head. Yep, that means you need to talk out loud for this method to work. Verbalizing a problem can help slow down the mental process, helping you take the time to see something you might’ve missed before.