I attended the CodeRetreat at @SteelCityRuby 2012 and this post is an abbreviated recap of my experience.
It was great! I had fun. There, I’ve thoroughly explained it. Go forth and try it out when CodeRetreat comes to a city near you.
Oh, you wanted more of an explanation? It was an event lasting from 8am to 5pm and it involved turning programming on its head. Corey Haines led the event with the space donated by 4Moms (thanks!!!).
We ran through a series of 45 min pair programming sessions interspersed with lecture sessions and short breaks. Each session was with a new random programming partner and had its own evil (but useful) coding constraints. Think of the constraints as a way to shake free many coding habits and relearn more maintainable patterns.
So what did I and others learn from this day of intense and fun coding? 1. Re-usable and easily modified code is worth its weight in rubies. 2. Think of the ways that constraints may change in the future, code to allow this (ie is true/false sufficient or should it be more than a binary choice?). 3. Tests are more than tests, they’re a roadmap for talking with fellow programmers on your team. 4. Communication is very important, sometimes more than programming skill when working as a pair. I found myself spending time and effort working on communicating well and understanding what my pair partner was envisioning. 5. Contemplate why you’re passing primitives as output from methods. Consider where passing an object could be better. 6. Short methods are maintainable methods, also helps with easier testing. 6b. The idea of a ‘screen-full of code’ being the max for a method came from our elder days when very few lines fit on a screen …. not from now with a 1080p screen with 9 pt font. 7. Possibly the most important learning of the day: Rubyists are very fun and supportive, even of newer programmers.
So think of a CodeRetreat as a sassy, challenging, sometimes infuriating exploration of ‘the code less written’, with apologies to Robert Frost.
Give CodeRetreat a try when its in your area. I’ll be hitting up the next one that comes this way.