I love browsing the blog archives of people I respect. It’s illuminating seeing how the world has changed in the intervening years, and how much has stayed exactly the same.
Colin Percival is the tireless maintainer of the AWS FreeBSD images for which I’ve derived a lot of inspiration for my FreeBSD and NetBSD templates on OrionVM. He’s also the developer behind the Tarsnap backup service we’ve been using at work for years. I saw him at AsiaBSDCon 2018, but was still dealing with social shyness at the time and didn’t approach. One day!
He wrote this about software development back in 2007 under the title Think before you code:
There has been a trend lately, particularly where internet startups are concerned, to measure success by the number of lines of code written. [Interpreting] 40,000 lines of code in three months as a sign that they were doing something right; he went on to point out that “you never see that in a big company”. To me this number is, if anything, a sign that things are going horribly wrong.
He discusses why lines of code is a problematic metric for gauging effectiveness and productivity, coining the term “zeroth-system effect”:
The zeroth system is what comes before the first system: Not only does it have very few features, but it doesn’t work […] it contains such fundamental bugs as to cast doubt upon whether the authors had any understanding of the field in which they were operating.
A summary of his conclusions should be on a laptop sticker, and applies as equally to business modellers, sysadmins, and system designers:
“Write code” is definitely important. “Release early”, too. But more important than either of those is “Understand the problem you’re trying to solve”; and most important of all: “Do it right”.