Yesterday evening we held our first code dojo kindly hosted by Fry-IT (who also supplied the pizza and beer). About 20-30 attendees turned up. Our aim was to generate a directed graph of a social network obtained from Twitter (something I blogged about before). You can see how we did by visiting the GitHub repository for the code dojo, the result of which is the image at the top of this blog post.
So, how did it go? Well, on the whole I got the impression that people enjoyed themselves but that there are many ways we can improve the "format". Tim Golden's blog post about the event pretty much sums it up.
For what it's worth, here are my observations:
- Most people were engaged most of the time during the dojo. Contrast this to developer conference talks where (to my eyes) most people seem to be staring at their laptops rather than the speaker (and I'm as guilty of this as anybody else).
- People demonstrably enjoyed themselves: I especially liked the spontaneous rounds of applause when a unit test passed or a graph appeared.
- It was friendly: suggestions were shouted out from the "floor" at appropriate moments but those in the hot-seats were also given space and silence when they just needed to get on with it.
- The ten minute / pass the test rule (whichever came first) worked well at keeping the participants engaged and focussed and also meant there was regularly something / someone different to look at.
- The accidental "half-time" break was a great innovation. As a group we were able to discuss the progress so far, what needed to be done next and what to clean up before hopping back into the chain of pair-programming.
- Using a third party API (Twitter) and providing a code-scaffold was a mistake. The first pair spent a lot of time trying to understand code rather than write it. We've agreed to start completely from scratch next time.
- Don't use a Mac keyboard or limit the editors to VIM / Emacs. Far too many people were publicly put in an unfamiliar development environment. This was both unfair and unhelpful. We've agreed to use a "real" PC based keyboard and use a more "visual" editor (that doesn't involve remembering key-strokes) next time.
- Make the problem smaller and specific. Too many times during yesterday's task it wasn't immediately clear what should happen next because the overall task was relatively vague: "display a graph using Graphviz based upon social network data from Twitter".
- Try to make those in the hot-seats as comfortable as possible. To paraphrase one participant, "I sat down at the keyboard and my mind emptied of all programming knowledge". The dojo is supposed to be a positive experience. Even typing in public can be nerve-racking.
Happily, most of the attendees said they would come to a second code dojo. So, in light of the list above, here's what we agreed last night:
- The next code dojo will take place on Thursday 15th October from 6:30pm-9:30pm-ish at Fry-IT's offices (the same location).
- Once again, there will be free pizza and beer (thanks Marcus!).
- The task will be to create from scratch a Tic-tac-toe game that includes a simple AI as an opponent.
- There will be some clear "baby-steps" and related tests to start the evening's activity off with focus and direction. (I'll supply these on GitHub).
- We'll do a post-mortem in the pub afterwards…
Get your thinking caps on for future code dojos: tasks, format changes, suggestions and ideas are all most welcome. I like the idea someone suggested of a team based dojo, reminding me of a Scrapheap Challenge like competition but for developers (imagine pitching that to Channel 4).
Finally, what does a neat table of pizza and beer look like after being attacked by Python hackers…?