Click here to read Part 1
The Problem
We wanted some complexity in the problem, enough that would warrant us needing to research part of our algorithm. But also, not too much that we were better off just copying and pasting code from someone else.We chose to write an engine that calculates the percentage likelihood of winning for every player in a Texas hold 'em game. There's a good amount of complexity and everyone understood how the game works.
2nd Attempt
This time around we rallied behind a single driver (who we'll just call Jake Byram because that's his name). He was in charge of facilitating the group discussion. As a group we decided what classes we needed to create and what their primary responsibilities were.Jake had a single file open that we all looked at on the projector. We would only use our machines if we wanted to research something that would help the current task at hand. Once we've shaped the contract of what a class would be someone else would extract the code into the appropriate file and folder.
We did this for about half an hour (again, we're still just coding over our lunch break). After we split out enough files we went off individually to flesh out the classes. With this session we were able to come up with a better set of components with more defined responsibilities. We also found that 1 hour is barely enough time to get work accomplished and only if you stay really focused.
We still maintained a good group dynamic with some joking around, questioning design decisions, debating algorithms, etc. The whole process felt more organized this time around by having a single driver and everyone focusing on the same screen.