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.