So what on earth is a code dojo?
You could follow the link (above) to the nascent global code dojo site but, in summary, it is public collaborative coding with the aim of mutual learning based upon the premise that acquiring coding skill should be a continuous process. It seems that the original code dojo started in Paris sometime in 2005. (‘Dojo' is a Japanese term roughly translated as "training hall" – often used when referring to martial arts or Zen Buddhism.)
A coding dojo will focus on a "kata" (another Japanese term meaning "form"). There can be two types of meeting:
- Prepared Kata – where a pre-agreed presenter demonstrates how to solve a specific challenge from scratch using test driven development (TDD) and baby-steps. Each step must be simple enough to be understood by everyone and the presenter should only be interrupted should this requirement not be met.
- Randori Kata – where a challenge is set and solved by pair programming (driver and co-pilot). Each pair has a small amount of time to advance the solution using TDD. When the time is up the driver goes back to the audience, the co-pilot becomes driver and one of the audience step up to be co-pilot.
We're attempting a Randori Kata based meeting, but as none of us has ever organised a code dojo before, anything could happen (which is both a good and bad thing). I suspect the first part of the meeting will be to agree the ground rules followed the dojo itself.
We met a fortnight ago to agree a Kata and chose to create a pretty social network graph from Twitter data and Graphviz. I've built the "scaffolding" (available on GitHub) so we can jump right into the problem rather than worry about boilerplate code.
It'd be great to see you there…