Monday, December 10, 2012

Miami Code Retreat - the Global Day of Code Retreat 2012

This past Saturday, December 8th was a Global Day of Code Retreat. CodeRetreats happen all over the world on the same day and I was lucky enough to notice ahead of time and register myself for the CodeRetreat in Miami. It marked the highlight in an otherwise frustrating week. Here are my thoughts.

So, what is a day of CodeRetreat?

The structure is a series of 45 minute Paired Programming sessions using Test Driven Development. You use a fairly simple programming exercise and each pair implements as much as they can in the timebox, in this case 45 minutes. Each session, the developers pair with a different developer, throw away the code from the previous session, and start over, again implementing as much as they can in the timebox.

The developers were supposed to come with a notebook computer prepared with their environment of choice. I had recently acquired a new replacement Windows notebook and loaded it with every Windows development environment I know how to set-up quickly, particularly Visual Studio C# and C++, Eclipse for Java, and MonoDevelop. I had also installed Ruby for Windows.

How did it go?

I should have taken some photos or video, but I was too busy shaking off some rusty pairing and code-language skills and jumping into the middle of things. I don't remember hearing final numbers, but it looked like there were about 20-25 people in attendance at any point, with maybe about 15 people staying for the entire day.

In addition to C#, I was thrilled to practice Test Driven Development in Ruby and Javascript, which I haven't done much TDD in. Of the few test frameworks people already had set-up, a few were Behavior Driven Development style test frameworks. I also haven't had a lot of experience with those, but was happy to try them out.

I was a bit surprised that none of the people I paired with had ever done Test Driven Development before. I was thrilled that they were all willing to try something new. I wish that I was less rusty in the languages they were comfortable with and less rusty in pairing practice. I like giving people a choice in development environments, but wish that more people had test frameworks already set-up in those environments, myself included.

I felt particularly lost doing BDD in RSpec with someone else that didn't seem to have much more experience in either area than I. But, that is part of the fun in an environment where you can try something new and learning is more important than worrying about whether you finished the exercise or not.

With each session a different constraint was attempted, such as:
  • Keep your functions or methods to no more than 5 lines long
  • Use only the keyboard, not the mouse
  • No talking allowed for the entire 45 minutes
  • Ping-pong: one person writes the test, the other gets it to pass 

What are my thoughts, take-aways, etc.?

CodeRetreats are similar in some ways to hack-sessions, coding dojos, XP-day events, and workshops I've attended in the past. I've almost universally enjoyed events with developers that are passionate enough about their craft to do it for fun or learning in their spare time. And by "doing it", I mean not sitting and talking about doing, but rather actually sitting down and working together, even if it's for just a few minutes. The CodeRetreat in Miami was no different in the positive energy, craft practice and learning that took place, for me anyway.

My main suggestion for improvement would be to present a bit of introduction to TDD before getting started. Particularly if a significant make-up of the group is developers who've never done it before. Rather than a mini-lecture, I'm picturing a pair of developers showing one or possibly two iterations of red-bar, green-bar, and refactoring.

I've been wanting to see a South Florida Agile group for a while now. It was great to meet some folks at Ultimate software in Weston a few months ago that are using some Agile practices. It was great to see that folks at the Independent Purchasing Cooperative, and a few other local companies, are doing Agile as well. Perhaps we can get enough Agile-minded folks to get an Agile or Software Craftsmanship group meeting and practising a bit more often. I particularly enjoy networking, learning, and practicing our craft with people that are similarly inclined.


Thank you so much to Tom and Carlos Ordonez of Creatus Angels for organizing this fantastic event in Miami. They also treated to a couple of rounds of Beer at the World of Beer afterwards. I couldn't imagine a better way to kick of the Holiday Season, being the first night of Hannukah, than with some like-minded Agile developers over a couple of beers.

Thank you to Bryce Kerley with Basho for doing an excellent job in the role of facilitator of the event.

Also, a huge thank you to Ed and the rest of Independent Purchasing Cooperative for providing the space and hosting the event. These are the guys behind the food, equipment, technology, services, etc. used by Subway Franchises.

Lastly, thank you to everyone that attended for such a fun, positive experience. Particularly those that had to put up with my rusty Ruby and Javascript language skills.

Jason Nocks

No comments:

Post a Comment