Rubber Duck Debugging

Rubber Duck Debugging

How can you more effectively collaborate with others while working from home?  How can you recreate the effectiveness of team collaboration when you're up against a deadline and only have yourself to bounce ideas against?

Rubber Duck Debugging
Tom Morris / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)

The only true wisdom is in knowing you know nothing.

~ Socrates

The Full Scoop

All my posts lately seem to be about ducks.  Have you every found yourself deep in thought, thinking to yourself, re-explaining a situation and you suddenly have an eureka moment?  While developing software, I found that if I hit a snag and couldn't figure out why my code wasn't working; working through the problem out loud often helped me figure out the solution much quicker than reviewing the source code, over and over again.

Rubber Duck Debugging is a term referenced in a book called The Pragmatic Programmer.  A programmer would carry around a rubber duck, and would explain code line by line to the duck.   This helped the developer work through issues, as while explaining defects and bugs to the duck, the issue would often manifest itself.

The idea of explaining out loud a challenging situation has enormous benefit.  If you are able to program in pairs with a person (a real person that is), pair programming can be invaluable; explaining your issue to someone else and stepping through verbally what you have built has solved many a problem.  Socrates used this concept as a form of debate, as asking and answering questions forced individuals to think critically through important issues they were facing.

We encourage our team members to run issues they are facing by someone else, whether you are on an IT Helpdesk, repairing computer hardware, trying to resolve a network issue; taking a moment to work through the issue verbally will help you step back and critically analyze the problem in a fresh and introspective way.

If you are used to running your issues by a co-worker, and find that you do not have either the ability or time to do so now.  Try speaking out loud to an object as you explain in detail the issue you are facing.  It will feel a bit crazy, but you will be surprised at the results, as you step out of your situation and attempt to explain it verbally.  Happy problem solving!