Using Someone Else as a Sounding Board for Debugging

A very simple but particularly useful technique for finding the cause of a problem is simply to explain it to someone else. the other person should look over your shoulder at the screen, and nod his or her head constantly (like a rubber duck: bobbing up and down in a bathtub). they do not need to say a word; the simple act of explaining, step by step, what the code is supposed to do often causes the problem to leap off the screen and announce itself.

Notes:

There should be a Jargon File term for this. I have used this many times, and others have used me for it as well.

Taxonomies:
/health and fitness/exercise (0.106339)
/technology and computing/hardware/computer (0.101608)

Keywords:
particularly useful technique (0.951239 (negative:-0.281830)), rubber duck (0.825627 (negative:-0.466284)), simple act (0.734594 (neutral:0.000000)), problem (0.485754 (negative:-0.393760)), screen (0.483035 (negative:-0.393760)), bathtub (0.475887 (neutral:0.000000)), shoulder (0.453640 (negative:-0.281830)), cause (0.435718 (negative:-0.281830)), person (0.432233 (negative:-0.281830)), head (0.405099 (negative:-0.403402)), word (0.402099 (neutral:0.000000)), code (0.400350 (negative:-0.505690))

Concepts:
Metaphysics (0.920930): dbpedia | freebase | opencyc
Philosophical terminology (0.789662): dbpedia
Philosophy of science (0.573252): dbpedia | freebase
Causality (0.560700): dbpedia | freebase

 The Pragmatic Programmer: From Journeyman to Master
Books, Brochures, and Chapters>Book:  Thomas, David and Hunt, Andrew (Oct 1999), The Pragmatic Programmer: From Journeyman to Master, Addison-Wesley, Retrieved on 2007-11-30