Zero, the Small Victory

Published: by

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:

  1. 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.
  2. 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."