(originally posted at http://mikedebo.ca/toronto-global-day-of-coderetreat-2012/)
My first coderetreat experience was in 2009. I became involved in the Software Craftsmanship community through an effort called the Wandering Book, in which a little Moleskine journal was physically mailed from member to member so that we could write out our ideas about the current state of maturity in the field, and where we were headed in the future. (I often wonder what happened to that book.)
At the time, there was a crazy fellow named Corey Haines on the mailing list who was traveling from city to city, from software company to software company, never staying in one place for very long. He called himself a "software journeyman", and was on a quest to improve his own skills by working with as many people and organizations as he could.
Early in 2009, J.B. Rainsberger posted to the newsgroup stating that he and Corey would be coming to Toronto, and asking if anyone would be interested in organizing a Coderetreat for them to facilitate. Not having any idea what a Coderetreat was, I thought it would be a good idea to immediately agree to organize one. For the sake of brevity, I'll say that it went off without a hitch, and I was a convert.
By 2011, Coderetreat had become a global phenomenon. In celebration of this, over 1800 developers worldwide held 94 Coderetreats on the same day, which was appropriately titled the Global Day of Coderetreat. Corey himself defied the constraints of time and space to facilitate_two_ Coderetreats on the Global Day, starting out in Sydney Australia and then flying to Honolulu, Hawaii to wrap up the day.
I was absent for most of this growth period, being knee-deep in startup-land from 2010 onwards. In 2012, however, I decided to get back into the Coderetreat habit. I organized a couple of events in Waterloo, and discovered the Toronto Coderetreat Meetup organized by Taz Singh and Kyle Hodgson. I was reading up on all the recent happenings on http://coderetreat.org when I discovered that the Global Day of Coderetreat was being held again, and I knew that I had to get involved.
Thus did ~70 Toronto developers converge on the Polar Mobile offices on Saturday, December 8th to practice their craft at GDCR 2012. The basic structure of coderetreat is simple: the day is split into several 45 minute sessions. In each session, participants select a partner and work together on a single problem, which is usually Conway's Game of Life. The focus, however, is not on solving the problem; rather, the goal is to promote learning by attempting the problem using a variety of different techniques or constraints.
Since developers tend to be very goal-focused individuals, there is an additional technique we use to ensure that everyone is starting afresh every session: At the end of each 45-minute segment, you must throw away the code you have just written.
This simple structure -- working in 45-minute sessions, in pairs, and throwing away the code each time -- opens up all sorts of interesting possibilties for learning. I saw one pair attempt to solve the problem using Excel, for example. Several other pairs worked under some suggested constraints, such as "don't use conditionals," or "no getters and setters". Our entire group attempted the "evil mute" constraint in the fourth session of the day, where you aren't allowed to talk to your partner at all.
It was inspiring (and hilarious) to read the tweets throughout the day from coderetreats running all over the globe. However, while the global aspect of GDCR is exciting, it is the local effect on our community that I find the most exciting. Several of our attendees left GDCR 2012 saying that they were going to organize coderetreats internally at their own organizations as soon as they got to the office on Monday, and that to me is the very best part of all of this.
Of course, none of this would have been possible without the support of our facilitators and sponsors. We had a couple of very experienced facilitators as well as a few newbies, and they did a fantastic job in challenging participants to work outside of their comfort zone and learn new things:
You can't host this many developers for a whole day without some financial support, and we couldn't have asked for better sponsors than Guidewire and Polar Mobile. Guidewire provided the funding for coffee and lunch, and Polar Mobile gave us access to their incredible office space. We had almost 70 people in there and it felt like we could have easily fit twice that number!
My favorite thing about our sponors is that they didn't just get involved financially -- they both had developers there on the ground participating in the event! Guidewire developers have been attending coderetreat since the very early days, while Polar is new and enthusiastic arrival to the coderetreat scene. I am looking forward to seeing more of both of them at future events!
As it stands so far, it looks like we were one head short of being the biggest code retreat in the world at GDCR 2012 (edged out slightly by our inexhaustible Romanian comrades). Let's see if we claim that honor at GDCR 2013, shall we?