Death to the Dot

Brian Capps
4 min readAug 27, 2014

Better software versioning. Period.

The third major release of Quotebook is called Quotebook 3.

Not Quotebook 3.0. Not Quotebook 3.0.0.0.0. Not Quotebook 17.43.0. Quotebook 3.

Why?

Because the details matter. Now, you may have already rolled your eyes so hard you can barely continue reading, and that’s okay. This post is not for you. If you really want to make awesome software for people, though, chances are that you sweat even the tiniest details. And there are few details tinier than a dot.

Dot, Oh

When was the last time you heard someone say a phrase like “Quotebook 3 point zero point zero is so great!”? Never. So why should your versioning be more robotic than a simple conversation between two people? Why are we talking like computers to each other and our customers? Why do we think that we should be so different from similar major video game or movie releases?

We can do better than convey a tone of computerized correspondence every time we work so hard on a huge software update. There’s a reason that The Godfather 2.0 sounds like a Terminator reboot. There’s a reason it’s called the iPhone 5 and not the iPhone 5.0.0. Whether you like it or not, the small, seemingly insignificant addition of .0 makes your software sound more like a math problem than an invaluable tool or novel piece of art.

Your users are smarter than you give them credit for.

Your users are smarter than you give them credit for. They’re smart enough to understand the difference between major and minor and even patch versions without being reminded every time you release an update. Introducing them to a completely standard versioning system by marking major releases as x.0.0 serves no purpose, and instead only appears less considered. Most smartphone owners have dozens of apps installed, and the pattern of major.minor.patch versioning is very quickly intuited. This versioning has existed for decades and is already understood by millions. When Apple releases a “1.0” and then a “1.0.1” version, no one is up in arms that the versioning scheme has completely changed. There are no lines out the door or pandemonium in the streets as this revolutionary new versioning system is introduced. Your users are not stupid, so stop treating them that way. You can omit any “.0” and still use this system with complete understanding and less hand holding.

Dotting the i’s

Bad versioning betrays a growing problem with software: Our communication with customers has become less human. When Facebook, one of the most used apps on the entire platform, calls a version 12.0 and lists the changes essentially as “improvements”, they’re no longer attempting to communicate with people. It seems, instead, that they’re leaking out some internal code versioning system, leaving the people who matter with no information and completely opaque reasoning. Software versioning is intended to make the size of changes in a release obvious at a glance. Instead, we’ve turned versioning and release notes into just another inconvenience we have to deal with. Facebook’s versioning sends a pretty stark message for those who pay attention: We care more about shipping a “major” version every four weeks than we do about you. You can do so much better by simply placing the needs of people above an obsession with technical innovation, and removing the extraneous and infuriating dots in your versioning is such an easy way to start.

But really, who cares about all this?

I do. And maybe you should, too. Proper public versioning is such a small, ultimately trifling issue that it takes just the tiniest iota of care. I’m not saying that you have to write a long, pretentious blog post justifying this decision as a larger reflection on the lack of humanity in software release communication. I’m just asking that you care the minimum possible amount it would take to remove the trailing two characters from a version number. If you try it out, you’ll find that it doesn’t take much effort at all. So the next time you release a major software version, try dropping the dot. Communicate with people like they’re humans, not robots.

The dot is dead. Long live the well-placed dot.

--

--