I just recalled how, a few years ago, John introduced me to the teddy bear problem solving technique:
“Another effective technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed ‘Never mind, I see what’s wrong. Sorry to bother you.’ This works remarkably well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.” – Brian Kernighan and Rob Pike, in The Practice of Programming
Here at Microsoft we call the teddy bear role “being a debug dog” — as in, “Can I talk to you about my bug, with the understanding that you don’t have to give me any better feedback than I’d get from talking to my dog?”
:)
I was just about to say that I do this too, only with my cat in the teddy-bear role. So I’m in good company!
I should do more of this. I always figure out tip-of-the-tongue words right after I ask someone.