Simple Version Numbers

We have to do something about version numbers. I don’t know who invented the x.y.z version number that we find on so much software today, but it is too complex and confusing. My MacBook Air is running macOS 10.12.1. My iPhone is running iOS 10.2. I am writing this post in Scrivener 2.8. My Safari version is 10.0.1 (12602.2.14.0.7).

Why do we need such complex numbering for our software versions? As a software developer, I can understand the utility of a build number as an internal benchmark. But what value does 10.12.1 have for the average user? Maybe I can tell you that I am running iOS 10.2, but you are only running 10.1, and that is why you don’t see a particular feature, but this seems overly complex.

Other methods versioning have been attempted, most notably Microsoft’s Windows 95, Windows 98, Windows 2000, etc. But this was mostly a marketing illusion. Behind the scenes, Windows still received standard version numbers. I, for one, am sick of complex version numbers. What is this tendency we have to make things overly complex? We may not be able to do much about simplifying the tax code, but simplifying version numbers should be easy.

In my own work, I have adopted a simple method of software versioning. When a new version of software is released into the wild, it is called, sensibly enough, a “release.” I give each release a number, starting with 1, which is the initial release. Any subsequent release becomes release 2 (or R2 for short), R3, R4, etc.

This seems to make things easy for both developers and customers. On the developer side, we create a list of features and fixes that go into a particular release. The release notes are a simple list of the features and fixes included in the release.

I’ve seen this in the wild in several places. The folks make Shroud of the Avatar use a simple release numbering system like this. The folks who make Todoist also keep to a simple release model. With this model, you can easily see the fixes and features in the release.

I suppose the x.y.z system has some value where versions branch. Software made for different platforms might have different branches for each platform, and thus, different version numbers. Scrivener has one version for Windows and another for Mac. But you could easily extend the simple release model across platforms by prefacing the release with the platform. For instance: Mac Release 7, Windows Release 5.

Version numbers often carry the false impression that the latest (highest) version number is the best version when it is really only the most recent version. This is most obvious even outside of the software field when someone labels a product a “Version 2-point-oh.” The current version of Microsoft Word on my computer (15.28) is far from the best version of Word ever made. That was version 5.5–for DOS. That there have been some 10 major releases and countless minor ones in between don’t change that simple fact.

Software is complex enough without adding to the complexity with confusing version numbers. If I ever run for office, I’m running on a simple version number platform.

One thought on “Simple Version Numbers

  1. This piece seems so disingenuous that I find myself compelled to comment. I’m no ‘version cop’ and really don’t care–I swear–but considering http://semver.org/ is barely a search away and your long software development background I’m surprised to read this from you. You’d prefer a versioning system which is essentially the numerical equivalent of New App, Newer App, New Newer App, Newer New App, etc.?

Comments are closed.