Tuesday, October 14, 2008

Coding Rumors++ or UberDojo

Hello,
I previously described the Coding Rumor game and later on presented the results we had at PyCon Brasil 2008 doing it. During the Encontro Agil, we tried having a session of what rbp (or R) called UberDojo to follow the UltraDojo idea (the name he prefered for Coding Rumor).
Just to remind you, UltraDojo (or Coding Rumor) is a Coding Dojo session where you don't need a projector. The code is written in one laptop and the pair switches with rounds just like the regular one. Everyone works on the same problem but you only get to see the code for 2 rounds (14 minutes) in which you are the co-pilot and then the pilot. If you are not on any of those roles, you can chill and chat with other people. The advantage of this is that it requires less time focusing on the problem which makes it a good practice for conferences.
The UberDojo version is just the UltraDojo game with several laptops. You should plan to have at least three people for each laptop but you can have more if you want. In this case, when the pilot leaves, he goes to the "audience" and will choose another laptop to go to on the next round.

Last Monday's session happened at Thiago's house. We were 14 people (Danilo Sato, George Malamidis, Rodrigo Bernardo Pimentel, Thiago Colucci, Fabricio Sousa Nascimento, Jacqueline Marchetti, Renato Willi, Bruno Pedroso, João Pedro Kerr Catunda - a.k.a Yoshi, Mariana Bravo, Breno Flesch, Rafael Schouery, Adolfo Rodrigues and myself). We had four laptops splitted in two round tables. Each table defined a language (Haskell and Ruby) and each side of the table defined a problem (Bank OCR and Minesweeper).
We followed 7 minutes rounds and tried to keep Haskell and Ruby "experts" available to help out people programming. At the end of each round, the co-pilots would become pilot, pilots would go away and part of the audience would join as a co-pilot on each table. We tried to keep it as random as we could in order to never repeat pairs. We had over 1 hour coding that way. It was very intense and fun. Obvisouly, we never got to finish any problem although we walked pretty well with the Haskell OCR system.

All the produced source code is available at Github on the dojo project at UberDojo-02. In retrospective people reported that is was very exciting and that it was actually a good teaching system but that they should police themselves to actually explain quickly the code to the newcomer before starting to code and be even more radical with the baby steps approach. I think this might be a very good exercise for experienced TDDers and agile teams. I believe if a team manages to actually code something slightly more complicated than Roman to Numerals, it is actually showing a lot of code cleaness. We acknowledge, however, that this sort of exercise is not especially welcoming to new people and requires quite a few experience with TDD. We agreed to have a UberDojo once a month in our meetings and keep the rest as regular dojo sessions. If you try it, please let me know what went right or wrong and your impressions.

Thanks and bye bye.

1 comment:

Daniel Cukier said...

Hugo, let's make the next session in my house, in Av. Paulista