Flow, Interruptions and Gold-Titanium Alloys
As I mentioned earlier, I’ve just had a very productive and fun weekend of hacking on testresources. But why was it so good?
Fast Commits
Because I was working offline using Bazaar, I could make commits to testresources and they’d be done before I could Alt-Tab back to Emacs.
Fast Tests
It takes about 0.15 seconds to run the test suite. This meant I was running it all the time, which in turn meant that I was totally certain about whether the code worked all the time.
Clarity of Purpose
I knew where I was and where I wanted to go.
No Rabbit Holes
The testresources code base is small enough that it is nearly impossible to get distracted by other systemic defects. If there is such a defect, it’s probably the one that you’re working on right now. This might be another way of saying…
No Blockers
I wasn’t waiting on anyone to do anything. There weren’t any other bugs that needed to get fixed before I could continue.
No Integration
The system is about as self-contained as it gets. No signals, subprocesses or sockets: just Python. The only dependency is pyunit3k, which is small, robust, well-tested and also pretty darn self-contained.
No Interruptions
I wasn’t answering questions on IRC, taking Skype calls, handling incoming email, doing the washing, checking Facebook, catching up on my blogs, watching a film or wrestling a bear. “Fast Commits” and “Fast Tests” probably fall into this category too.
In other words:
There is nothing except this. There’s no art opening, no charity, nothing to sign. There’s the next mission, and nothing else.