I came back from PyCon Brazil on Sunday morning. It was a very pleasant experience although I was there only for half of the conference. There were three main things that are worth writing about.
The first one was a nice chat I had with rbp and Bruce Eckel about the Coding Dojo. To start, I explained a little bit about the Coding Dojo dynamics and the practices used and rbp helped me with some details. Once Bruce got the idea, we talked about collaboration between Dojo (specifically about São Paulo's Dojo and Paris' one) and the tools we needed for that. It soon become a crazy MMOG (Massive Multiplayer Online Game) where people from all over the world could join and choose a theme where there would be rooms hosting coding dojos. It would be running 24 hours per day since there is always a dozen programmers awake willing to code some more. We all agreed that this would never replace the physical coding dojo meetings but it could serve as a motivator to join them. We discussed what are the tools lacking for that and how viable it would be to build them and have them work. Was a pretty cool idea. I would gladly start that if I wasn't already so late with all the other projects ;)
The next noticeable event was the Coding Rumor (or Ultra-Dojo) session that we hosted. It was very instructive although it obviously didn't work out very well. The main problem was that participants were not TDD programmers which ment that their approach to solve the problems did not followed the baby steps' principle. The result was a code that seemed to work but was very hard to understand and was not very well test covered.
I could learn from the experience that this exercice should only be done with people that are fluent with TDD and the regular Coding Dojo should be used to take people to that step. Another interesting thing was that the retired position was more harm then good. It quickly became a continuation of the previous round were the retired ordered the pilot each step he should make. We, therefore, decided that this position should be eliminated since the pilot always has the pointer to its retired. If needed, he can call him for help but he should be away from the current pair.
Finally, the Coding Dojo session was pretty cool. We had around 20 attendees and most of them had never heard of Coding Dojo. If I remember correctly, about three persons sometimes wrote test firsts, about eight sometimes wrote tests. So mainly, people were really NOT experienced TDDers. The good thing is that this was not a major problem. I presented the ideas using this slides (english version here) and then we started to solve the Bank OCR problem from codingdojo.org. I followed Kiko's suggestion to present the problem slowly (giving smaller goals at the beginning and growing them as they were reached) and let them start coding. It was interesting to see how hard it was for them to adapt to other people's ideas. Every co-pilot that arrived had a new idea and wanted to erase the previous one. I let this happen for a couple rounds then stopped it and made them follow the idea they were on by refactoring slowly towards the suggested solution. They managed to solve each digit using a dictionary this way and had some weird suggestion that coupled the implementation and the tests together (using the dictionary on tests or a copy of it) which they abandoned after a few arguments. After that, they went to parse several digits and had some problems to write the split string function. I suggested writing a test and they did and passed it. They were convinced it was going to work so they asked for another two rounds to finish the problem and accepted staying 15 minutes longer after the time for it. Unfortunetaly, the test was not complete and their implementation crashed. Took them a few mins to understand that they were lacking a test but they did and once it was written they accepted to stop.
The retrospective was pretty cool and we noticed that most problems pointed were heavily related to the lack of experience of the group to those programming practices although they valued a lot all the ideas they had seen. I guess it was pretty much a success and I hope people will start more Coding Dojos around Brazil. My homework from the session was to provide a video showing a Coding Dojo session to do the marketing to other people. I already talked to people at São Paulo's Coding Dojo and we are going to record our next sessions to try have this video ready soon.
I guess that is all for now. Bye bye people.