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:
- Every two minutes, a bell goes off, and you must either commit or revert your code.
- You can’t commit unless you’re passing all your tests.
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:
- You don’t have to commit something every time the bell goes off.
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.