Summary: CodeRetreat #1 Smashing Success

Yay Team

Man, did we have fun at the first CodeRetreat in Ann Arbor, MI, sponsored by Pillar Technology. We had 25 or so programmers show up, including 5 dedicated software craftsmen who assisted me as Master Rabble Rousers for the event. So special thanks indeed to Ron Jeffries, Chet Hendrickson, Corey Haines, Bill Wake, and the guy who (of course) stole the show, J.B. Rainsberger.  J.B. flew down from approximately the North Pole on his own dime. He had, like, seven connecting flights. He was wearing a full beard and long hair, because where he lives, if you don’t do that, you die.There was lots of pairing, lots of discussion, a very cool String templatizer Kata performance in Ruby by Corey Haines. There were beers and brainstorming and stupid geek tricks at Bar Louie’s afterwards till late. I’ve made a couple of animotos of the event here and here.

Learning Outcomes (as they say)

So, we learned that we want to do this on a regular basis: several times per year, per region that adopts it. That’s our immediate goal.We learned not to use nasty little legacy Java applets as starting points. (What is it with me and nasty little legacy Java applets? Bad old Java karma, I expect.) We learned to spend each CodeRetreat event on a single language. Splitting the first one into Java and Ruby involved too much thrash and context switching, and did not focus us all on craft as much as we had wanted. Too many were not fully engaged in honing craft, enough of the time. I felt their pain. The next CodeRetreat event, at least, will be entirely in Java.

 Kata All the Way Down

We also learned that we want to concentrate the next few CodeRetreats on repeating the same exercise again and again, Kata-style. We’ll likely adopt Conway’s Game of Life as our standard exercise. We can adopt more if we choose to later.  Let’s see how well this one serves us as a craft-focused, learning sandbox. We can still mix up the session design around the way we do that Kata. But we agreed we’ll dive deeply for awhile together into that problem domain and potential implementations. We’ll get that one completely “under the fingers.”

CodeRetreat #2: Saturday, March 14, 2009: LeanDog, Cleveland

Just got the go-ahead from my pal Jon Stahl that his consultancy, LeanDog Software will be hosting our next CodeRetreat on his cool headquarters-boat on Lake Erie, some Saturday (TBD) in March of 09. Again: this one will be wall-to-wall Game of Life in Java. Other details will be emergent. Our primary texts, where craft is concerned, are Bob Martin’s Clean Code, Fowler’s Refactoring, and Lasse Koskela’s Test Driven. We might switch them up a bit, but we’ll try to stick to three reference works at a time, for a good long while.

Stay Tuned

If you want to start a CodeRetreat in your region (we are concentrating for now on MI and OH), please contact me, and I will help you set it up if I can. I have had interest in the Philly suburbs in hosting one at Ternary Software, for example.If you want to attend another of our MI/OH CodeRetreats, please watch the ning site.  Well, watch the site anyway. I think CodeRetreat is a meme that can spread. If not, it will not be for lack of stubbornness on my part.

CodeRetreat #1

Corey Haines, Nayan Hajratwala, a couple other coders, and I, catching up with each other at CodeMash last week, discovered that this single idea had been percolating independently for awhile in our separate heads. The idea is this: you get some programmers together for one or more days, and with bare-bones structure, a few Kata and exercises, you have people code for most of the time, then talk for just a little time.

Let the Mechanics Evolve

We might intersperse coding and discussion with just a couple of Kata performances. We might have a bit of competition; we might ask teams to exchange codebases and whine about what they dislike in the code they inherit. We might have programmers disagree loudly about this or that practice. But a bunch of group-learning would occur, and it would all center around craft.  So no PowerPoint or Keynote decks. No pitches of this technology or framework or that one. Leave your Masters degree or your alpha-geek attitude at the door. We are all peers at CodeRetreat. We just test-drive and refactor the best code we all can, changing up pairs in some sensible fashion, discussing design decisions as we go. Some of it we do as a mob; some of it we do in teams; some of it is performed by one programmer; some is performed by a pair. At the end of the day, we all go off and have beers and keep debating, with or without our laptops.

First One: 1/24/09, Ann Arbor, MI

Well. Now we have a new little social network on-line that describes CodeRetreat, and Nayan and Corey and I have actually pulled the first of these events together: it will be Saturday, January 24th, 2009, at the Ann Arbor, MI Spark center. The CodeRetreat site provides all the details. And we hope to replicate this pattern, publishing our results as we go. There are so many questions this might ask and eventually answer. Might ongoing 1-day regional CodeRetreats become a way for programmers to hone their craft together on a regular basis?  Might itinerant, genuine Journeymen like Corey spread this seed to other CodeRetreats in other regions?  What will eventually emerge as the best format — most engaging, fun, thought-provoking? What sorts of Kata and exercises lend themselves to this kind of learning best? Might this be a better way for programmers to learn in general, on a steady basis, than we tend to have right now? Who knows. Let’s find out.

Join Us if You Can

Off we go to the first CodeRetreat, between 15 and 30 of us, to code and debate code together.  If you live anywhere near Southeast Michigan, and have a Saturday free on 1/24, please consider signing up for the event, and joining us.