Teddy Bear Pair Programming
Blog post series
This blog post is part of a series about pair-programming games. To read about more please click see more sessions on pair-programming games.
Concept
Scenario: You are having an issue and you don’t know how to solve it. You tell someone “Hey, can you help me? Let me tell you my problem!”. You start telling the problem, your conversation partner doesn’t say a word and you say “Yeees, this is it! That’s the solution. Thanks for helping me!”. But you had in fact just a monologue, and you found the solution for yourself.
What if, instead of talking to a human being, you had a constant partner whom you would explain your problems like it were a human being. This is how my teddy bear helps me:
This technique is called teddy bear pair programming. My teddy bear helps me when debugging some application. I tell him my issues, and I find the answers by myself, he’s that awesome!
. . . [an] 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 teddy bear before they could speak to a human counsellor. (Kernighan, B. W. and R. Pike (1999). The Practice of Programming. Reading, Massachusetts, Addison-Wesley)
When I do TDD my teddy bear help me figure out which are the next steps. I talk with him continuously, explaining what I do now, and what are the design choices I make. I need to explain everything to him because he’s so smart that he helps me without saying a word.
When my IDE annoys me I tell my teddy bear and I feel a lot better, because he understands me. After all in the teddy bear world they have heavyweight IDE as well.
Your teddy bear will help you with basically anything. You just need to verbalize your problems and ideas. It just makes magic!
I told my colleagues at Mozaic Works about this idea, and as a result the following Open Agile conference they ordered teddy-bears for all the attendees.
Another name for teddy bear paring is the Rubber Duckling idea. It’s just that I like teddy bears more than ducks. And teddy bear pair-programming sounds better 🙂
Special thanks to Aimee Rivers for tweeting about this and giving me the awesome idea of teddy bear pair-programming.
We have used a Furby for years. They at least talk back. The new ones are quite nice.
I first saw this formally described as “Rubber Ducky pairing” (http://c2.com/cgi/wiki?RubberDucking) or “Cardboard Analyst” (http://c2.com/cgi/wiki?CardboardAnalyst). Have seen it work countless times.