The Rubber Duck
Here at C2 Labs, we have adopted the Rubber Duck as our unofficial mascot. If you see us out and about or even on camera for meetings, you will see many of our staff with rubber duck stickers, small rubber ducks, foam stress ducks, and one employee even has a giant rubber duck in his office.
At trade shows, we give our these ducks and duck stickers with our logo as well. So, what gives? Why a rubber duck for a company solves the most wicked business and technology problems so our customers can focus on their mission??
Rubber Duck Debugging was introduced to us by our Principal DevOps Engineer, Jed Thornock. It is not a new or unique concept to just C2 Labs, but it certainly is something that we utilize daily. Wikipedia talks about it here: Rubber duck debugging , and there is even a website dedicated to it, which spells it out well:
The rubber duck debugging method is as follows:
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.
Note: In a pinch a coworker might be able to substitute for the duck, however, it is often preferred to confide mistakes to the duck instead of your coworker.
Original Credit: ~Andy from Mailing List Archives
We follow much this same process. The big realization is when you are explaining your code, process, or other item to a duck or another person, you almost always solve your own problem. And if explaining it to another person, that person should facilitate all the basic/”dumb” questions and not let you skip ANY steps. By doing this, it lets you find the issue.
We would love to hear your experiences with your own rubber ducks, or if you need a rubber duck, reach out to us any time.