Why you should have a rubber duck on your desk.
(by Thomas Rinke, Marketing Manager)
I started writing this article the very moment after a skype call with a colleague. She wanted to know more about a certain topic within my department. I explained it to her.
At least I tried.
While looking for the right words, facts and arguments I recognized something. An awesome idea grew into my head and became clear and bright. By sorting my thoughts, the new structure reveals a new insight to me.
The facts and informations were in my head all the time. But it wasn’t until I explained it to someone else that it turned into a new picture. It was like doing a jigsaw puzzle. You have all the pieces at hand but only after you’ve put them together in the right order you can see the whole picture.
And the conversation helped me to do so.
Rubber Duck Debugging
In software development, there is something called rubber duck debugging. It is a method of finding errors in your code. You’re doing it by walking a rubber duck through your code. Step-by-step, one line after another.
At rubberduckdebugging.com you can find the perfect definition of the method:
- Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety).
- Place rubber duck on desk and inform it you are just going to go over some code with it, if that’s all right.
- Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line.
- At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.
The other person doesn’t need to know anything about coding. Actually, it doesn’t even need to be a person. The trick is to force you into explaining your work and ideas. It is more effective by imitating a dialogue.
The Feynman Technique
The fundamental technique behind this phenomenon is much older than programming. Ancient Greek philosopher Socrates used a method named after him. It was a form of a cooperative argumentative dialogue based on asking and answering questions.
He didn’t use a rubber duck. He had his friends.
You can apply it basically for every situation. Nobel prize-winning physicist Richard Feynman integrated it into his learning method.
- Choose a concept you want to learn about
- Pretend you are teaching it to a student in grade 6
- Identify gaps in your explanation. Go back to the source material. Understand it better.
- Review and simplify (optional)
Again, it contains the part of explaining something to someone. If you cannot explain it, you don’t know it. And if you cannot explain it in simple terms, then you are hiding your lack of knowledge behind complicated vocabulary.
A rubber duck for everyone!
We all should use this technique more often. Not only to find bugs in our code or learning something new. But also to (re)organize our thoughts and ideas.
After the chat with the rubber duck your ideas are confirmed and authorized for further conversations within your team.
Especially now, more people than ever are working remotely and don’t have the possibility of a direct response.
There could be someone listening to you all day long. It will not complain. It is patient.
But if you’re hearing a quack in your home office, take a break and get out for some fresh air.