Test-First Productivity
Wednesday, March 23rd, 2005I think the thing I liked most about Test-First development was that it had such a simple routine. This routine allowed me to focus on the task(s) at hand for at least a while and Get Stuff Done.
The routine:
- Define the next baby step in the project
- Write a specific criterion for what it means to be complete
- Implement to meet that criterion
- Repeat
That simple loop increased my productivity tremendously. Before, I would get distracted about some new library, or thinking big thoughts, or worrying about things irrelevant to the task at hand. All of those things are fine, of course, in moderation. However sometimes they prevented (distracted) me and the end result was significantly less productivity.
If I had to estimate, I’d say test-first development accelerated my coding by about 25-40% just because of the routine. That I spent less time debugging (because everything passed tests!) sped me up an additional 25-40%. Sometimes I’d lose a little time because I couldn’t figure out how to create a test framework for the task at hand (GUI especially). But that wasn’t a tremendous drain.
Now, if only I could make a similarly simple routine for getting through other knowledge work.