Building sand castles on a rising tide

Grabbing a handful of wet, saturated sand, I let it dribble through my finger tips.  I watch each drop pile on top of the previous, draining away the water and leaving a new building block of solid sand.  Too much water and the previous drip will be washed away.  Too little and the sand cracks and refuses to hold together.  I watch the sand grow, getting into a rhythm that ensures just the right amount of water, without thought.

My thoughts are not on the mechanics of building a drip castle with sand.  Instead, I’m thinking of the spire that I’m building.  Can I build these two spires toward each other and form an arch?  Can I make this slender spire taller?

Frequently I fail and a part of the castle slides down, becoming part of the landscape again.  Or becoming a foundation for a new part of the castle.  No matter.  It’s the building of the castle that brings me joy–not the owning of it.  For I will never own it.  The sea soon comes and takes it away.

Last weekend, I drove six hours down to Floyd, Virginia for a Code Retreat organized by Gustin Prudner and led by Corey Haines.  There, I joined thirty-some people working in pairs and threes on Conway’s Game of Life for forty-five minutes at a time.  Then, Corey would call time, and we would wash away all traces of what we’d built.

Does that sound like a waste of time?

It wasn’t, for we weren’t building code.  We were building castles.

We weren’t concerned with completing the program, any more than I’d be concerned with completing a sandcastle before the sea washes it away.  Instead, we were paying attention to how it went together.  We were noticing how the small choices we made affected the structure that resulted.  How the structure made it easier, or not, to build to greater heights.

In my pairs and triplets, I started differently each time.  Let’s organize around the cell, and see where that leads us.  Now, start with the playing board–a grid of locations.  Then with the relationship of neighborhood.  In each case, writing a simple expectation of that object, implementing it, repeating, simplifying, making the intent and responsibilities clear, lead to a unique castle of code.  We were not so much writing tests and code, as thinking about the problem and expressing those thoughts directly in tests and code.

I noticed that by emphasizing what we were doing, rather than how we were doing it, gave us simpler, more malleable, and more robust code than we might get if we were trying to “get it done.”  The awareness of the ephemeral nature of what we were creating freed us from mere concern over the construction–resulting in a construction better suited for an enduring achievement.

It’s a marvel that I’m still pondering.

And while we repeatedly build these fleeting castles of code, I noticed many other things.  I noticed how easy it was to share ideas by typing them as code.  I noticed how one choice affected the next.  I noticed that when my thoughts became muddled, it was easier to back up to a point of clarity and start forward again.  I noticed the joy of working together with others, fully engaged in the same endeavor.

While all the code has been washed away, the way I felt and the things I learned remain.

Thanks to all of you at Code Retreat Floyd.  My future work will be better for having shared this weekend with you.

Post to Twitter Post to Plurk Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to Reddit Post to StumbleUpon

Comments (3) to “Building sand castles on a rising tide”

  1. What a great summary. I saw the announcement of the code retreat and I greatly wanted to go, but being on the other side of the world makes it difficult.

    I enjoyed the feeling of the event that you’ve communicated, the sand castle metaphor and your observations in the final paragraph: “I noticed how easy it was to share ideas by typing them as code.” All of this makes me wish even more, that I was there!

    Wonderful post. Thank you!

  2. Kane, it’s quite possible to hold a Code Retreat in Brisbane. In fact, if I could find some work or conference to pay my fare, I’d love to help you do so.

  3. […] development. What would happen if you assembled your team prior to chartering and held your own Code Retreat or other day of kata exercises? In one day, each technical member, both programmers and testers, of […]

Post a Comment
*Required
*Required (Never published)