Dec
24

Software Versioning

Recently, I was working with a small software company in Portland that had an interesting sequence in its version control.  They started, as usual, with version 1.0.  Then came 1.0.1 and a bunch of branches after that through something like 1.0.20.

Well, everyone had the idea that “1.1” was going to be a major landmark with specific features.  There came a day, though, where the users stopped caring about the difference between 1.0.10 and 1.0.11 and we needed a way to signify a major upgrade.  We spent a few days racking our brains trying to figure something out.  Suddenly, we had it!

We released version 1.0.100 as a major update, hoping the jump from 20-something to 100 would strike people as important.

Nowadays, the software is at version 1.2 something, but the frequent releases make things seem almost trivial when updates do occur.  The other day, the gurus at Automattic released version 2.9 of WordPress, the wonderful platform I use for blogging.  This version introduced several new features, but otherwise went by like a ship silently through the night.

You see, there’s a certain way to version your software to signify the importance of each number in the string.  You start with the major version of the software, followed by the minor version, followed by the maintenance release.  So WordPress 2.9.1 is first maintenance release to the ninth minor upgrade to the second version of the software.  Right?

In an ideal world, that’s how it would work.  But no one can ever agree on what constitutes a “minor upgrade” and what constitutes a “major version change.”  The upgrade from WordPress 2.6 to 2.7 brought a huge overhaul of the software interface, suggesting it was a major change.  There are still people who refuse to upgrade because one system is so different from the other they can’t figure it out.

Still, this major polarizing change was still just a minor upgrade in the grand scheme of things.

I’m getting a bit nit-picky about everything, and I realize that.  But in the era of Mac OS X, Max OS X Leopard, Mac OS X Snow Leopard, Windows Vista, Windows 7, and so on, versioning has become more and more visible to the end-user.  The question you need to ask yourself, though, is this: will the end user understand what the differences are between the version they’re using and the version you’re offering?

If I don’t know why Windows 6 (Vista) and Windows 7 are different, fancy names are meaningless.  If you’re going to release an upgrade, make sure its necessary and not just a fresh coat of paint over something the user already has.  It will make necessary future upgrades much easier on your customer base.

Speak Your Mind

*