While the title of this post may seem provocative or an exaggeration, when I first read Kent Beck’s Test Driven Development: By Example, it had a profound effect on me.
It wasn’t about the technical benefits of regression testing or supporting refactoring (which are both very important and good benefits), but it was the simple reminder that it is okay to slow down. If you are running fast and start to fall, should you try to run faster? That would be silly; you would slow down and regain your balance.
When things are stressed and you are flailing, it is easy to forget to take a moment and collect your thoughts. Be it a meeting that is “going in circles”, a panicked discussion about a competitive threat, a slipping deadline or just being overwhelmed by a complex situation, I’ve aways been helped by taking a moment and asking two questions:
- What do we expect or are trying to accomplish?
- How might we do that?
It is these two different “modes of thought” that are the essence of Test Driven Development (TDD). The resulting clarity and focus comes from the intentionality and corresponding awareness of your effort.
A common challenge, both in applying TDD to software development or applying the philosophy to things like strategy and startups, is that you don’t necessarily have clear expectations; there can be a lot of uncertainty. This is okay; you might be in an exploratory context. But rather than simply drift with the currents, I suggest drafting a hypothesis. Experiments are the norm in lean startups.
As a developer, there is more I could write about the merits of TDD, but in all honesty it isn’t the only method (nor a guarantee) of success in software. But its fundamentals have been invaluable to me, well beyond any technical context.
Originally published at justideas.io.