Rubber Duck method of debugging

This is brilliant!
We called it the Rubber Duck method of debugging.  It goes like this:
1) Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck
   (bathtub variety)
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.
3) Explain to the duck what you code is supposed to do, and then go into
   detail and explain things line by line
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.

Works every time.  Actually, if you don't have a rubber duck you could at
a pinch ask a fellow programmer or engineer to sit in.