Code Design
Courses and Workshops on Effective Code Design

Global Day of Code Retreat

On December the 8th, we had the Global Day of Code Retreat in Cluj-Napoca. We have joined the other 150 cities all over the world in a great global event.

My first contact with a code retreat was almost a year ago when some friends from iQuest invited me to join them for a code retreat organized internally. I loved it. I liked the idea, the format, and the most the fact that I had the opportunity to pair with developers I didn’t know and to experience different programming languages. Since then I had the idea to organize with RABS a large code retreat with a lots of developers. When somewhere in October, I heard that there is going to be a global day of code retreat, I said that this is the best opportunity to organize it, so I’ve registered Cluj, among the other locations in the world. I wanted diversity: many programming languages and many developers with different experiences and views. We’ve succeeded: we had 70 developers who programmed in 8 languages: C#, Java, C, C++, javascript, Ruby, Python and F#.

I needed help. I’ve asked Andrei Olar, who facilitated the code retreat at iQuest to take over the facilitator role. He gladly accepted. Knowing we are going to be more than 50, we have also asked Costin Morariu who facilitated more code retreats, to be another facilitator. Even if he lives in Sibiu, he said yes. I was the third facilitator and Sergiu took over the host responsibilities. We decided at RABS that we are going to organize it, but we wanted to have an event for all developers, regardless the technology or experience, so we asked the major programmers communities in Cluj: Code Camp, JUG, Cluj.rb and RONUA to join us as co-organizers. They all accepted our invitation, so we’ve published the event and started registrations. We’ve chosen Cluj Cowork to be our host. It was perfect for such event (lot of space and more rooms). After a few days we had over 50 people registered. When we’ve reached 80, the maximum capacity, we’ve opened a waiting list. In the end we had 135 registrations. Part of them announced us that they cannot make it and leave the seat to someone else. From 85 confirmed registrations, 70 showed up. Given the large number of people we splat from the beginning in three groups: red team, blue team and green team. Each team had its own facilitator, its own rooms, and basically we had three code retreats which ran in parallel. The facilitators consulted regularly to do the same exercises in each session so we allow people to switch teams after lunch.

The first session was to allow everyone to get familiar with the problem. We also asked them to write tests. Given the fact that most of the participants were not familiar with the format we have chosen Conway Game of Life. The second session asked for TDD, but we did not make anyone to change the pair if he didn’t want to. The third session was also about TDD and pair programming, but now anyone had to pair with someone else. At lunch we were already counting around 7 programming languages. After lunch we started with a ping pong TDD session, meaning that one starts writing the failing test and his/her pair makes it pass and writes the next failing test and then they switch again. The last session was a mute session, no talking with the pair. This forced everyone to make their code very expressive. We had some pairs who also tried the ‘no-ifs’ exercise for the last session.

I have facilitated for the blue team. It was the first time for me as a facilitator and a great experience. The advices from Andrei and Costin helped a lot. Also of great help was the facilitator training registered by Jim Hurne, which I watched a day before on the plane and in the airport. Thanks guys! A large part of the participants didn’t try TDD before, so during the second and third session I insisted that the three steps of TDD are done in very short cycles. I remember that at the beginning of the third session when everyone had to switch the pair, there was a lot of loudly arguing in each pair. Everyone knew a different way to solve it. They all did it two times before. I went down stairs for a few minutes and when I’ve returned it was quite again. They’ve reached the common ground. Pair programming worked. In the last session I had a pair of three who were intrigued by the no-ifs exercise and wanted to try it instead of the mute session. They almost did the implementation in 45 minutes. At the closing circle everyone shared what they’ve learned. If I had asked the same questions at the beginning of the day, I am sure I would have got very different answers then the ones at the closing circle. This proves that it was a good experience for everyone. It was a nice reward, to see developers happy because they have done TDD and pair programming and that they have learned something. Some did this for the first time.

Most of the participants asked to have more code retreats. There were many suggestions to have one each month or one every two months. Given the interest I’ve seen in Cluj for this I think we are going to organize it again and again, but next time I will be also coding. Andrei and Costin said the same, they also want to code in the next code retreat. We all three were a bit jealous on the ones who were having fun coding and experimenting new approaches. So, who wants to facilitate the next code retreat in Cluj?

In the end, I want to thank to everyone who contributed to this great day starting with each participant and ending with Corey who started it. I had a great experience. Thanks!



You can see some more pictures on our facebook page.

P.S. Special thanks to my girlfriend Georgiana and my brother Mihai for helping me with the organising work.

P.P.S. A big thanks to our local sponsors:, ISDC, accesa, TSE Development Romania, Endava, Kno and ULLINK.

You've successfully subscribed to Code Design
Great! Next, complete checkout to get full access to all premium content.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Error! Billing info update failed.