Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
The idea for coderetreat was spawned at the January, 2009, Codemash Conference by Gary Bernhardt, Patrick Welsh, Nayan Hajratwala and Corey Haines. The idea was to develop a repeatable, day-long event that was focused on practicing the fundamentals of software development. The first event was held on January 24, 2009, in Ann Arbor, MI.
Through the course of 2009, many retreats were held, including several international ones in Iceland and Romania. The format for the day evolved over the year, based on the concrete experiences of the facilitators. This has resulted in an established format that defines a coderetreat event. While the choice of facilitator has an effect on the details of the day, the over-arching recipe remains the same.
Through 2010, I embarked on a coderetreat tour with the goal of facilitating 10 code retreats around the world (I ended the year having done 11). Along the way, I shared the formula and facilitation techniques, so that others could learn to effectively facilitate their own. This supported the ideal that the more skilled facilitators there are, the more coderetreats that can successfully reach their full potential.
In 2011, based on my learnings of how to facilitate the day, I've expanded into private in-house trainings for companies using the coderetreat format.
Single or Multi-language Events
For the first year, we pushed single-language coderetreats, generally using Java as the language. It was chosen for one simple reason: almost anyone could code in it. There were coderetreats, though, held in different languages, most notably Ruby, but they were always single-language.
In Romania, led by Alex Bolboaca, they had different ideas. They didn't stick to the single-language format and looked at what would happen if people did it in whatever language they wanted. So, at a single coderetreat, you might have people doing it in C#, some in Java, some in Python and perhaps a few in PHP. I introduced Maria and Alex to the idea of coderetreat in May of 2009, and the Romanians went wild and started having coderetreats all the time. When I went back to facilitate one in February, 2010, it became clear that they had some great learnings to share. We dropped the 'single-language' rule that I usually go with and went with their standard multi-language version. It worked great!
Global Day of Coderetreat
Coderetreat has come a long way from a simple conversation in a hallway to a global event. 2011 has seen the coderetreat idea expand, culminating in the Global Day of Coderetreat: 32 hours where coderetreat is happening, ripplying through the timezones.
Over the past nearly four years, I have traveled around the world, facilitating over 50 coderetreat trainings. Along the way, I shared the formula and facilitation techniques, so that others could learn to effectively facilitate this event. This has served the goal of increasing the number of skilled facilitators who understood the fundamental goals and techniques behind the coderetreat training format.
After attending and facilitating more than 50 code retreats, I've become convinced that it is a valuable way to disseminate the idea and implementation of focused practice. I've seen the effect of attending a code retreat on people, and I want to share a proven formula for running one.
-- Corey Haines