A month ago, I ran an "All Day Coding Dojo" event as part of the London Games Festival Fringe 2008. The idea is to run a complete game development project in a single day so that the attendees can experience working in a team and discover first hand the trials and tribulations of making a game.
I first experienced Coding Dojos at the Brighton Coding Dojo. These were held in the evening and lasted a couple of hours. This worked well for forming a disparate group of people. I tried this at work with my team, but we found that work intruded to easily and people found it hard to concentrate.
This is a new term that I have coined. As part of my Agile/Scrum process we operate a "Gold Day" where developers are allowed to do any work they want to for a whole day every two-week sprint. This is somewhat akin to the Google 10%. I decided to run an All Day Coding Dojo which would act as a mini Agile/Scrum project.
The day is split into planned chunks. This is important as it sets limits of discussions and a clear deadline for work. The All Day Coding Dojo being a microcosm of a real development project, the intention is to produce a working product by the end of the day. I also posted some restrictions to what we would be doing.
My initial thought was to prepare a game idea in advance so that the group would have something definite to work on, but my team convinced me that the group devising the game idea themselves is one of the interesting bits and ultimately gets people more involved. We decided to restrict the game to being based around a prebuilt game control mechanism, in this case a Whack-a-mole (screen divided into 9 sections accessible from the numeric keypad. This can be used to make mobile phone games.)
The group spent an hour going through ideas of what could be built. User stories are written on filecards which are stuck to the wall with bluetack.
I facilitated the discussion by standing in front of the group, keeping the talk flowing, throwing in points to be discussed and scribbling down the cards. The group decided to build a game called "Death Death Revolution" in which the player would have to play a musical phrase with the numeric keypad which would cause humans from a crowd walking over a set of trap doors to fall through. The humans would then be eaten by our pet zombie living below, and, to make a higher level, occasionally turn the human into a further zombie that will need to be fed.
Coding Dojo-style, a computer is set up with a monitor and a large screen display that everyone can see. One person sits at the keyboard to type and another joins them to guide the action. As an Agile technique, they select a user story which they will work on. They have 10 minutes (use 15 if you have less than 5 people) to work together on the feature. The audience watches and keeps up, but doesn't butt in. After 10 minutes, the typist rejoins the audience, the guider sites at the keyboard, and a member of the audience joins them to be the guider.
Always a good idea. We stumbled out of the 01Zero-One venue in Soho and found a Zilli Fish restaurant. It was made even better when we realised that Aldo Zilli was in front of the door and let us in :D
The team review progress so far and can change how they work in the afternoon if it hasn't worked well in the morning. It is a good Agile technique to frequently re-assess your working method at adjust it.
Do some more coding. In this session we created a second group to look after the artwork needed for the game. One of the instructions was that the game "features images of the attendees". I wouldn't normally break up the team, but if it works then do it. In this case it worked really well as the artwork team were able to keep an eye on what the programming team were doing.
At the end of the sprint we demo to the 'client'. It was useful having an external person to demo to because it concentrated the developers on producing a working product at the end of the day.
Stick three post-its on the wall for ideas; "Good", "Not So Good", "Could Do Better". Everyone in the team has a stack of post-its and a pen. They write ideas on them and stick them to the wall. Keep going until there are no more ideas. It doesn't matter if something appears more than once as it shows popularity. We then discuss as a group all the things that people said.