The Bowling Game
There’s a flamefest going on at the moment between Robert "Uncle Bob" Martin and Joel Spolsky over the value of Test-Driven Design and the SOLID principles. I find TDD valuable and I’m reading Martin’s Clean Code at present.
Poking around in the links led me to Uncle Bob’s Bowling Game Kata, a Powerpoint deck demonstrating using TDD to score a bowling game.
Ron Jeffries has a very ugly OO implementation and a cleaner procedural version of the Bowling Game. Digging around in the archives of his XP Magazine turns up many other ruminations on the Bowling Game
At Atlas, I was loaned to one group that used the Bowling Game for a pair-programming interview. I found it to be a valuable exercise. It showed us whether the candidate could actually code or not and it gave us a feel for what it would be like to work with them. It gave the candidate a taste of Agile work practices like TDD and pair programming. Of course, in a real pair-programming exercise, I would have been actively making suggestions instead of holding back.
We interviewed four candidates while I was on that team. Two passed, were hired, and worked out. One failed, failed other interviews, and was eliminated. The fourth candidate was very experienced, gave great whiteboard while talking through the exercise at the beginning, and turned out to be completely horrible. He floundered badly and wrote ugly, buggy code. That eliminated him, even though he had done well on the other rounds.