Not only software craftsmen but every professional developer should care about life-long learning and continually improving his skills.
Successful software development requires a wide range of skills and focus from a team, and the technical practices are a core part. Unfortunately it is often difficult to integrate effective skill development into our daily workflow. Creating an environment that allows us to focus on improving those technical skills - one at a time - is the goal of coderetreats. Over the last nearly 3 years, the coderetreat format has evolved to become a time-tested technique to help developers hone their technical abilities.
The idea for Code Retreats was born at the Codemash conference in January 2009, followed by the first event soon after. The thought was to develop a repeatable, day-long event that was focused on practicing the fundamentals of software development. Over 2009 and 2010, through the work of several active hosts and facilitators, shepherded by Corey Haines, the format stabilized into what it is today.
During the event a simple task (the Conway's Game Of Life) is repeatedly tackled over the course of several sessions, each session concentrating on a specific area of software development and design. Pair programming and TDD are a given for the event. The Game Of Life is a simple cellular automaton with only 3 rules. While simple to understand, the problem provides many excellent areas to explore different development practices and ideas around software design.
Skills that can be part of the exercise are:
- The 4 rules of simple design
- OO principles (SOLID)
- TDD as if you mean it
- Functional programming
- Continous Refactoring
- using a bad habit: only manual or no testing
- Object Calisthenics
- focus on pair programming/communication
- ping-pong pairing
Coderetreats are intentionally language-agnostic, as the concepts and ideas practiced are core to software development (GOL in APL). In 2009, the format was being investigated and evolved from its initial concept through feedback from multiple coderetreats held by a few active facilitators. In 2010, with the goal of sharing the concept even more, Corey went on a global coderetreat tour hosting 11 events in total, learning and sharing a lot of facilitation techniques along the way. In 2011 the format really took off - there is a coderetreat almost every weekend somewhere in the world.
Global Day of Code-Retreat
The Global Day of Code Retreat is an international event initiated by Corey Haines and organized by local facilitators with the goal of running as many parallel coderetreats world-wide on a single day as possible. Besides bringing people together to hone their skills and have fun, an important goal is to raise the awareness of coderetreats and to focus on improving concrete skills of software developers. Corey also has hinted about a couple major initiatives being officially unveiled on the day.
The event will take place over 32 hours on December 3rd, 2011. Corey will facilitate the first coderetreat in Sydney, Australia, take a 6pm flight, cross the dateline and facilitate the last one in Honolulu, Hawaii. All the while, coderetreats will be weaving around the global in the other direction. As coderetreats begin and end in the different timezones, they’ll be keeping in touch over video- and voice connections.
So far more than 50 cities have registered a coderetreat, and the list is growing. With an average attendance of at least 20 people, this translates to over 1000 passionate software developers all participating on the same day. Registered coderetreats are listed on the global map of coderetreats, so it is easy to figure out where the nearest event takes place.
Hosting an event is easy. Hosts of local coderetreats are asked to register their event and participate in the organizers’ google group. They should also acquire local sponsors for the event to take care of room, drinks and food (lunch).
So far global sponsors like JetBrains, ThoughtWorks, Pernix and Pragmatic Programmers have added their support to the event. The organizers are looking for more sponsors to support Corey’s travel and worthwhile giveaways for the attendees. Around the event there will be widespread media coverage (e.g. by InfoQ) to support the goal of expanding the awareness of coderetreats and software development practices.
Check out if there is a coderetreat near you and register, or take the next step and host one yourself. The more cities that participate, the easier it gets to accomplish the goals of coderetreat: raising awareness of software development skill improvement. The twitter hashtag for the event is #GDCR11.