Rubber ducks

Have you ever been in a situation where you have a problem or a question, and simply by explaining it to another person, you find the solution yourself? And not because the other person did anything in particular...

In fact, “the other person” doesn´t even have to be a person at all. It can even be an object, like a rubber duck for example.

yellow duck toy beside green duck toy

And I say rubber duck because this is exactly the name that´s been given to this technique in the IT world: the rubber duck debugging method.

This method proves really useful when you´re programming and get stuck trying to resolve an error (or bug) that´s preventing your application from behaving as it should. The idea is to explain the situation to the rubber duck, and to do it in great detail because of course, the duck knows absolutely nothing about your application. So you have to explain the context, the exact problem you´re trying to solve, how you´re trying to solve it, the code you´ve written line by line… And very often what happens as you´re going through it with such a level of detail is that you suddenly realize where the problem is, and how you can solve it.

Super cool, right?

You might be wondering: ¿why a rubber duck? Honestly, I don’t know, maybe it all started out as a joke, but the truth is that this method is as useful as it is simple (once you get over the awkwardness of talking to a duck, or any other inanimate object of your choosing), and can be used not only for debugging code but for life in general.

I imagine this technique works so well because it forces you to take the problem out of your head and see it from the outside, from a different perspective, so you stop going about it in your head the same way again and again. Moreover, the action of going through it step by step and out loud helps you to focus on details that you may have overlooked before, that way increasing the chances of identifying the real problem and finding a solution.

What do you think? Are you willing to give it a try? Perhaps next time I see a rubber duck in a shop, I´ll buy it to keep it here by my computer :-)