Making Code Speak

A weblog of tools, techniques, styles and habits for programming with fluency.

The Tiniest Step Is No Step At All

In conversation with a friend the other day, I realized that I’d left out an important part of the tiny steps post from the other day: sometimes the right move is not to take a step at all.

A few weeks ago, I attended the Boston instance of the Global Day of Coderetreat. I was lucky enough to spend one of the sessions pair programming with my friend Laura, who I haven’t programmed with in far too long – possibly not since we were on a project together. But that’s not the point of this story. This is a story about tiny steps.

See, the rules for this session of the code retreat were simple:

Sound familiar? I told you I was borrowing a lot from other people’s ideas in that post. ;)

Anyway, our first few minutes of coding were hectic and terrifying. Even if you’re used to working in small cycles, two minutes is a bit ambitious, especially when you’ve got the threat of losing all your work standing behind you. But after a while, we realized that the most important rule was the one they didn’t say out loud:

This made all the difference. When we started to panic, we’d step back. Breathe. Reassure ourselves that we didn’t have to do anything yet. Then we’d ask each other: “Okay, what’s a step forward that we’re confident we can finish before the next bell.”

Most of the time, after we’d asked that, we had a step we could easily do. Then we’d start talking and exploring again. If we hit a step that we couldn’t get to in the time limit, we’d step back and think about how to make it even smaller.

I learned more about implementing the Conway’s Life in that session than in any of the others.

posted by Moss on 21 January 2014