Last week I attended XP Manchester where the meetup was advertised as TDD Sudoku #1. The inspiration for this session was provided by a similar exercise carried out by Ron Jeffries around 10 years ago. The objective was to follow a similar process to create a “Sudoku Solver” with the aim of understanding the possible reasons why Ron’s attempt was ultimately unsuccessful.
I’ve never played Sudoku and have only read about Test-driven Development (TDD) via various sources as well as being half way through the GOOS book. I was keen to learn more about TTD and this looked like a good opportunity to.
What I hadn’t realised was that we would be using the mob programming format with an element of rotation to allow all attendees (around 20 or so) to get involved. I was already aware of mob programming following Woody Zuill’s great talk at the Coop last year so was interested to experience this also.
So this was set to be a great chance to learn about, and practice, some new skills.
So what did I learn?
Sudoku looks like a fun little game, not sure why I’ve never bothered to play properly it but aim to sometime soon.
TDD is conceptually straight forward but put 15+ people working on a problem together and various styles and opinions create an interesting dynamic. I didn’t really learn anything new about TDD. Like most things people have there preferred ways of approaching a problem and this was evident as we initially struggled to gain any momentum due to conflicting views.
A mob of 15+ programmers with varying opinions, some on less important factors such as coding style, can easily result in a less than productive overall process. The large number will no doubt be a factor here but possibly someone controlling the mob and providing more direction to keep focus on the problem at hand would be beneficial. We did waste a lot of time on “tabs vs spaces” type discussion.
So while the first session wasn’t hugely productive in terms of creating a “Sudoku Solver” it was definitely an interesting process. I’m looking forward to the next session where we’ll look to progress further with hopefully more discipline.
Finally, I just stumbled on a post from Kevin Rutherford who was also in attendance. Some useful additional insights.