I had the pleasure of having coffee one morning this week – straight off the plane – with a colleague who recently took over all technology at a fast-moving startup.
This very smart technology leader is after two very big, but related, changes:
- Continuous Deployment: He wants lots and lots of small changes, as often as they can handle (and perhaps a little more than that). Aren’t deployments risky? Sure, but as I’ve written before, putting two deployments together isn’t twice as risky, it is 2^2 = 4 times as risky. If you deploy only once a month, you suffer that pain once a month, but the pain is orders of magnitude greater (and more damaging) than doing it in small chunks every few days.
- Testing: To paraphrase the timeless words of Mr. Maguire, “Just one word: testing.” It is all about testing. The more automated tests you have, the greater the confidence you have that your changes actually work.
In the world of testing – and its more extreme but also more reliable form of Test-Driven-Development (TDD) – the number one metric you care about is “coverage.” What percentage of your potential use cases and/or code is covered by tests? The ideal is 100%, although I have rarely seen organizations of any size hit that edenic number.
My friend’s answer to his current coverage?
“Zero… and that is a good thing.”
Why, pray tell, is a big fat zero, absolutely, positively no automated tests covering any of his code or customer use cases a success, a good thing?
Think Alcoholics Anonymous. The first step of their famous twelve-step program, just like with any form of therapy, is to admit that you have a problem.
If an organization wants to change, to become better, it first needs to admit it has a problem. My colleague’s first success is getting from, “we don’t know and we don’t care” to “we have 0% coverage.” The first step of admitting a problem is its very first success, a “good thing.”