AgileWorks Romania
24Sep/11Off

Code Retreat

A code retreat is a one day free community event for software developers. The idea of the event is to remove all pressure and allow a self-selecting group of developers to experiment new and better ways to write software. It usually takes place on Saturdays.

The code retreat format is the following:

  • one day event
  • we work on a problem, generally Conway's Game of Life
  • 6 sessions of 45 minutes, 3 sessions in the morning and 3 sessions in the afternoon
  • during each session, we work on the problem in pairs and at the end of the session we delete all the code. Yes, really delete all the code.
  • after each session we discuss what happened, change pairs and start over again

The problem cannot be finished in 45 minutes. If you do finish it, it means you haven't tried hard enough to write the best code that you can.

Did you know that the Romanian community was the second in the world to do code retreats, right after the first 2-3 in US? Since then, the format has changed and improved. Maria Diaconu and Alexandru Bolboaca were the first facilitators and they have helped improve the format.

What you learn at a code retreat depends on you. Usually, we touch on technical practices like:

  • Clean Code
  • Simple Design
  • Test Driven Development
  • Object Oriented Design
  • Working in more programming languages, in some of them for the first time
  • Functional programming
  • SOLID principles
  • and others, depending on the audience.

The typical agenda of a code retreat is:

  • Start time: depending on the facilitator, between 8:00 and 9:30.
  • Participants arriving, coffee, socializing – 30’
  • Introductory speech by the facilitator – 30’-45’
  • Session #1 – 45’
  • Retrospective #1 – 15’
  • Session #2 – 45’
  • Retrospective #2 – 15’
  • Session #3 – 45’
  • Retrospective #3 – 15’
  • Lunch – 90’
  • Session #4 – 45’
  • Retrospective #4 – 15’
  • Session #5 – 45’
  • Retrospective #5 – 15’
  • Session #6 – 45’
  • Retrospective #6 – 15’
  • Retrospective of the day, group photo – 30’
  • Optional, after party

Did you know that more than 20 code retreats were organized in Romania?

Photos from Romanian Code Retreats

First Code Retreat

History

Corey Haines and a few other people (Gary Bernhardt, Patrick Welsh, Nayan Hajratwala) thought of this in January 2009, at the Codemash Conference.

In May 2009, Maria invited Corey to speak at OpenAgile Romania. Alex and Maria met him then and learned about the format.

In June 2009, the first Romanian code retreat took place. It was probably the third or fourth in the world and certainly the first in Europe. Maria and Alex facilitated together most of the Romanian code retreats.

In January 2010, Corey came back to Romania and a code retreat facilitated by him, Maria, Alex took place. JB Rainsberger was one of the attendees. At that time, Corey had his ideas and we had our ideas. We discussed all approaches and came up with improvements. He helped us use a standard format for the code retreat, while we introduced a few changes: the final retrospective and the idea that the code retreat should not be focused on one single programming language.

During the Berlin code retreat in August 2011, Alex did the final retrospective in a different way.

So, the format is evolving. More than that, each facilitator has his own style. This is good, because it allows improvements.

More history: http://coderetreat.com/history.html

What makes a good code retreat?

The role of the facilitator is very important. He or she has to push the attendees, to make them expand their horizon. He needs to ask questions and try not give answers, but guide the attendees on a discovery path.

Bad facilities stand in the way. If the facilities are good, people won’t notice them and focus on learning.

In the end, how much people learn depends on them. The facilitator cannot push them harder and hope they learn more. Instead, he needs to keep explaining the principles of the code retreat and help them take advantage of the environment created for them.

Comments (3) Trackbacks (2)
  1. Doar un feedback scurt 🙂 Pair programming “done right” are 2 tastaturi, 2 mouse.  Din poze se vede altceva 🙂