Rubber Duck Debugging

Step 2) Place rubber duck on desk and inform it you are just going to go over some code with it, if that's all right.

Step 3) Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line

Step 4) 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 prefered to confide mistakes to the duck instead of your coworker.

Original Credit: ~Andy from lists.ethernal.org

FAQ

If duck's are so smart, why don't we just let the ducks do all the work?
It would be wonderful if this were true, but the fact is that most duck's prefer to take a mentoring roll. There are a few ducks however that do choose to code, but these are the duck's that nobody hears about because they are selected for secret government projects which are highly classified in nature.

Where can I learn more about rubber duck debugging?
More information can be found here and here.

Where can I hire my own duck?
Great question! Amazon hosts a wide selection of affordable ducks that have graduated with a technical degree from some of the world's leading universities.