Rubber Duck Debugging
lists.ethernal.org
lists.ethernal.org
It's a good book and a good technique. We used to use the director for the same purpose at my first "real" job. He couldn't program but he was really good at looking skeptical.
However, even if I agree with the great use I really use it more for code reviews than for actual hardcore debugging. (This could be my fault because I use distributed async processes in my work)
I think the rubber ducking has more advantage if you use a high level dynamic type language to code in (rather than more low-level C with pointers).