ACCU London - September 2010

Jon Jagger's Coding Dojo

 

Once again I found myself at one of the London offices of SkillsMatter for an ACCU London get together. This time it was a CyberDojo hosted by Jon Jagger. I didn’t know exactly what one of those was, but there were good reports about the one he ran at the ACCU Conference this year so that made it sound promising. Also there had been some chatter on accu-general about the system he was building for it that intrigued me.

 

The basic premise is that we were initially split into groups of three to solve a simple programming task. There would be one person allowed to use the keyboard (the driver) and two aides. After ten minutes Jon would ring a bell and the driver had to move to another group, but he wasn’t then allowed to drive – one of the remaining two had to take up the role. Due to the time constraints of the event this part only lasted an hour with a few minutes afterwards to discuss what happened. Naturally a few of us retired to The Slaughtered Lamb to do some Pair Drinking.

 

I’ll be honest and admit that I was somewhat nervous at the thought of Pair Programming with a bunch of ACCU members. If there is one thing I have come to realise since joining the ACCU it’s how high the bar really is and I probably would have felt somewhat intimated if some of the bigger names were there. In contrast I barely knew any of the 10 or so people that turned up and that made it all the more exciting as I had some unexpected social barriers to contend with instead. Still, rather than throw caution to the wind and join two other new faces I spotted Allan Kelly was also a man down and so took the safe approach and joined his group instead.

 

The setup was quite simple. Each group had a laptop with some custom browser based software that provided a simple text window into which you could write either unit tests or production code. Once you were happy with each you hit a button and the code would be compiled and the tests executed. You would then either get a green or red light. Sadly I arrived late and missed the explanation about how the groups were connected behind the scenes, but there was some kind of gaming system under the hood that turned your actions into a pot of money that gave you an additional goal.

 

The programming problem itself was quite simple – format up an integral value into Roman Numerals. It’s the sort of problem you would expect to be pretty easy, at least if you’ve been through a round of job interviews in the last few years; but it quickly becomes tricky. I’m not sure if it was stated as a goal, but each group took a Test-First Development (TFD) approach and wrote small failing tests before adding new production code. The choice of initial tests was quite interesting as some started with the low numerals, I, V etc, whilst others picked the opposite end, M, D etc. It didn’t take long for the easy ones (1, 5, 10 etc) to be working and the teams to stumble on the key difficulty with Roman Numerals – how to deal with the numbers just less than the main numerals, i.e. 4 (IV), 9 (IX) etc. At this point, for some, the “simplest thing that could possibly work” changed from a simple step to a much larger prospect as the teams started to discuss algorithms to generalise the solution; others seemed happy to keep solving each little case and try and continue taking small steps.

 

The 10 minute rotation now became more of a distraction as you were in the middle of a ‘design meeting’ when you found yourself needing to stop and bring the newest member of the team up to speed, or you became the outsider and had to integrate with a new order. Near the end word spread of a fresh lead involving special cases of numeral pairs and some members were trying to explain their findings to their team mates when Jon called time. Throw into the mix a subtle change in programming language (Java/C#) and that fact that The Driver may not even have written code in one of these curly brace languages, or even be used to the Imperative paradigm for that matter and you can see why so little production code was written in those short 60 minutes.

 

Of course we all know that Lines of Code is no measure of success and what really mattered was the team dynamics. For example one team was initially isolated in the opposite corner of the room and no one noticed when it came time to swap – so they were left with the same pairing until Jon stepped in. Surprisingly there were no big egos, if anything people were all a little too polite; perhaps that’s a symptom of a largely anonymous group whereas if we all worked together some of us would have felt more comfortable taking a more leading position.

 

Perhaps if more teams switched one of their team-building events from paint-balling or bowling to one of Jon’s CyberDojos they might build more than just morale.

 

Chris Oldwood

10/10/2010

 

Bio

Chris started out as a bedroom coder in the 80s, writing assembler on 8-bit micros. These days it’s C++ and C# on Windows in big plush corporate offices. He is also the commentator for the Godmanchester Gala Day Duck Race and can be contacted via gort@cix.co.uk.