Our first code-retreat experience

At a code retreat, we spend a whole day practicing our coding skills. The main focus of such a day is code perfection, not finding an actual solution to given problems. We encourage learning from each other in different pairing sessions and even different languages. Jup, it’s a whole day of coding craftsmanship.

When we arrived at our very first code retreat, we saw a group of tired (hardly awake) but enthusiastic and motivated developers ready for a day of coding. It was a nicely balanced group of people from different backgrounds. Most developers were C# developers but there were a couple of VB.Net, Java developers and Ruby guys too.

The challenging set up

Corey introduced us to the concept of the code retreat and the challenge at hand: Conway’s game of life. We paired up  for 45 minute sessions of programming trying to solve our problem for the day. The main focus had to be on writing the most beautiful code ever written without worrying about the fact that we were not going to be able to finish the task.

It’s like practicing playing an instrument: you don’t expect being able to play a song perfectly after 45 minutes. Instead, you concentrate on a small part of the song and try to get it right. This is what we did during these sessions. After each session we had to stand up, move away from the keyboard and describe our experiences.

Did we get some fresh insights on the problem? Did we try a different approach from last time? How was it to work in a programming language that you are not familiar with? And how was it to work as a pair, trying to solve this problem together?

After discussing all that, we had to do something we really dreaded: throw away everything we worked on. All code had to be deleted and we had to start over without dragging any legacy code along. It was hard at first, deleting everything. But after throwing away all of our hard work a couple of times, we started to feel liberated. We found out we were free to discover new paths towards a solution.

An open mind

We got to recharge our batteries during a long lunch. It’s a long lunch for a reason, by the way.We had spent a lot of time extremely focused on coding, so we really needed  some space to calm our minds and replenish our energy. We exchanged a lot of experiences from our morning, our working situation and life. This sharing helped us to relax and get some inspiration for new ideas and thoughts.

After lunch we started with a fresh and open mind. Every group altered their approach towards the domain itself. Most of us really started on the rules, something we didn’t really do in the morning. We just set up the infrastructure (classes) that we were going to need to solve this, starting bottom up. We really got into the TDD idea of starting off with the real requirements and letting the underlying architecture flow out of it. Yes, we were on a roll and were really enjoying our challenge (even though no group ever came close to solving it).

Looking back

At the end of the afternoon we had a retrospective moment. We all got to talk about the things that had surprised us, the most important things we learned throughout the day and what we wanted to do with it in our working environment.

The most interesting stories were those of people who’d been doing TDD for some time and now admitted they weren’t really that good at it. And a lot of us planned to look into this Ruby thing, because it felt so very promising.  We feel the same about this code retreat and are already looking forward to the next one.

Ruby & the future

Since so many people loved Ruby, we’ll probably organize something around Ruby soon (make sure to check our training schedule!). If you’re used to languages like C# and Java, Ruby really is an eye-opener. It’s clear that Ruby offers a completely different programming experience as the ‘older’ languages and really inspires you more to write concise and well-crafted code.

About AGILEMinds

AGILEMinds focuses on craftsmanship, whether it is software or business related. We try to organize events that inspire people and help them in their day-to-day situation. We want to see people being touched by an experience. We will organize new retreats in the future and will continue to build several craftsmanship tracks with a strong focus on participant experience and continuous learning.

Tags: , ,

Categories: Product Development

Subscribe

Subscribe to our RSS feed and social profiles to receive updates.

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: