Version Numbers: What’s The Point?

October 3, 2012

One of the things that my team and I have consistently discussed when working on Standard is how to actually maintain or version numbers. It doesn’t stop there, of course – even in my own work, I give considerable thought (how lame does that sound?) as to how I should track the version numbers of my projects.

Thought I tend to follow the schema of “Major Version, Minor Version, Hot Fix” (i.e., 3.0.2), I’m unsatisfied. And to put it bluntly, I’m discontent with the whole thing version numbering issue: They’re inconsistent, they aren’t user-friendly, and I’m not even sure what we should do about it.

Developers, Developers, Developers, Developers

For the most post, I think that version numbers are more for the benefit of the developers than anyone else.

Users care about having the latest and greatest, but we kid ourselves into thinking they care about having the latest version number stamped on their software because reminds them of just that, but does it really?

Once you’ve upgraded something, you know you have the latest version. The only time you care that you don’t – or that you’re reminded that you don’t – is when something new comes out, right?

So instead, developers end up using them as a way to know which version of their product a person is using in case there are bugs or issues that appear, and we claim that we use it to track which version of our work that people are using.

But do the users really know or even care what version they are using?

Think of The Users!

We’re all users, right? To that end, I can’t say that I include version numbers as part of my vernacular when talking about whatever it is I’m using.

Case in point, I rarely say:

I’ve got a MacBook Air with OS X 10.8.2 Mountain Lion

Instead, it’s just:

I’ve got a MacBook Air.

Or even with WordPress, it’s just a matter of saying:

To each his own, but I dig WordPress.

Rather than:

Sure, you can use Blogger but WordPress 3.4.2 is the optimal blogging platform.

No one would claim that version numbers are user-friendly – a string of numbers separated by a decimal? Again, it comes back to helping developers diagnose problems.

The bottom line is that I don’t think users care so much about the actual numbers so long as it’s the latest release. The challenge is making sure they are aware of the release they are on and know how to upgrade.

But even then, it’s inconsistent.

Consistently Inconsistent

Here’s where we stand with version numbering of different software

Windows 7

Chrome 22

WordPress 3.4.2

OS X Mountain Lion

Firefox 15.0.1

…you get the idea.

But users simply say they are using Windows, Chrome, Firefox, Mac, and so on. But I’m personally a fan of Chrome’s model of something that’s easy to remember – Chrome 22 – but they still ship a more detailed version number.

But what happens in a few years when they’re up to Chrome 573? Does that make sense? Will it even make a difference? I’ve no idea. Same goes with, say, Apple – do they stick with the cat family or do they eventually move to a new species of animal?

It’s as if we’re working with a short term solution to a long term problem.

Or is it even a problem?

So What To Do?

The problem, I think, is that this is built into the software culture so people expect to see version numbers, and developers expose them to cater to that and to promote their latest and great.

But what options do we have?

Developers are notorious for thinking our way is best (but we don’t even have a consistent “our way!”).

We like to think that we think of the users, but we don’t and it’s obvious is so many ways than just how we version our products.

Do we drop version numbers and use them internally? Come up with a more user-friendly version numbering schema (does naming themes after animals even make sense?)

For what it’s worth, I’m a fan of dropping public version numbers – or at least playing them up less – and keeping internal mechanisms that users and developers can reference when they have an issue. This is just as much a problem for me as it is every other developer and software shop.

At any rate, is this even a real issue? And if so, is there a solution? For what it’s worth, I don’t think there is, but I am curious about your thoughts.

Join the conversation! 11 Comments

What’s interesting is you’re saying this now, when we’re living in the first few decades of the internet. Think about our grand-kids 30 years from now.. “I’ve got Chrome v321 running on a MacScreen w/ OSZ African Zebra (an upgrade from just Zebra)!”

I’m still not entirely convinced there won’t be some shift – at least in some companies or part of the market – where this changes.

For example, there’s isn’t really an iPad 3. There’s the “new” iPad. Which naturally raises the question: what’s next? Is the next new iPad the new iPad? Is it latest iPad? If It’s the latest iPad, do we run out of adjectives to describe the latest version?

I use the guidelines set forth in the doc. http://semver.org/ which is authored by Tom Preston-Werner.

This is a clear precise way to do versioning. I don’t think there’s anyway to get around it. You could only alias this number in some way to only display a change when there are features upgrades. Most of my users expect versioning in some fashion when it comes to software.

This is fantastic – I’ve yet to actually stumble across it so thanks for sharing it.

I think it’s definitely fair to say that “users expect versioning in some fashion,” but that’s kind of where I’m getting – what constitutes versioning from the end users perspective, you know?

3.4.2 means much more to a developer than a user. Personally, I love the idea have having simple version numbers for products (Chrome 22, iOS6, Windows 7), etc for users having the more complicated details available but somewhat abstracted from them.

At the moment, I feel that users are familiar enough with version numbers (and numbers generally) to make as much sense of them as they need to. They know that the difference between 3.0.2 and 3.0.3 is small, and between 3.0.2 and 4.0.7 is big. They can also easily compare their current version is 3.0.2 and the version on the website says 4.0.7, so they better upgrade to get the latest and greatest.

That’s about as much info as a user needs from a version number, and to be able to pass it on to developers if needed to identify a particular state for the software.

Having said that, I think if software is well-written and backward compatible enough, then version numbers may be irrelevant to the user. This is actually starting to happen with Google Chrome. I have no idea what version I’m currently running. I’m vaguely aware that it updates itself now and again, but even that is probably more than your average user would notice.

There’s a recently released plugin by Gary Pendergast that does the same trick for your WordPress install! Automatic updates. Who cares what version it is, you just automatically have the latest version and the software works.

By implementing a reporting mechanism, it may be possible to even completely hide the version number from users and make it internal use only.

I’d be interested to know which camp the majority of users fall into. Do they want to know? Or do they just want things to work and don’t care about versions? (I’m sure there’s some of each)

Perhaps that’s the fundamental issue here: for robust software that “just works”, version numbers are irrelevant. If the software is troublesome, users might be more concerned about versions.

Lots of good points in your comment here – going to try to quote each one to make sure I don’t lose the train of thought :).

At the moment, I feel that users are familiar enough with version numbers (and numbers generally) to make as much sense of them as they need to.

I agree – but I still don’t think it’s user-friendly. In fact, I think three-digit (or even perhaps two-digit) version numbers are ugly. But if you reduce it to a single number, you ultimately come back to the problem of “Chrome 739” at some point and that just sounds ridiculous to me :).

It’s not so much that I want users not to know. It’s that if they have to know, I want it to be as easy or as user-friendly as possible.

There’s a recently released plugin by Gary Pendergast that does the same trick for your WordPress install! Automatic updates.

I love the idea, but I’d never use it unless the site was setup using code the majority of which I’d written myself. We both know from recently conversations that the state of the WordPress ecosystem is a total mess. Automatically update WordPress and break the theme and 3 of the 7 plugins? That’d be a nightmare for some customers.

Again – love the idea, but I’d only use it under very specific circumstances.

I’d be interested to know which camp the majority of users fall into. Do they want to know? Or do they just want things to work and don’t care about versions?

Same. And my guess is that the more tech-savvy are totally comfortable with knowing about them where as the rest just want something that works.

I’d like to always err on the side of the users who just want something the works. The tech savvy can always look deeper when needed.

How about the latest iOS release? Giving iOS6 a name lets everyone say “don’t upgrade to iOS6 if you want to keep Google Maps.” Same thing goes for other software that is version critical like Drupal where version 6 vs 7 is extremely different.

As far as non version critical software its not 100% necessary but if you version your CSS and JS in your themes, you make sure that user is downloading the latest version and not the cached version in their browser.

Exactly – there’s a relationship between the version number and user’s expectation, but I think something like iOS6 is so much simpler than iOS 6.0.22.480, you know?

I think that keeping it simple externally – for the users – are more detailed internally is the way to go. People are going to be talking about software so they need some point of reference to relate what works with what version. I just don’t think the version has to be as complex as we make it … at least in some parts of the software industry.

Agreed that they’ll always been needed, but the degree to which we present them can vary.

I’ll also go as far as to say as that I’m not even calling for a version number standard across the board. Software is way too varied for that. Why should an operating system be subjected to the same rules as, say, a WordPress plugin.

On top of that “standardizing” stuff like that is just like “standardizing,” HTML. Sure, there’s a standard, but it’s not always followed.

Standards are like laws: We like to think we’re abiding by them, but we all speed at some point.

For me, it boils down to making sure that this necessary evil is as good on both sides of the fence as possible.

Just Getting Started with WordPress?

I write a lot about WordPress development but if you're just getting started, I recommend checking out WPBeginner. They have free training videos, glossary, and more.

WPSessions hosts some of the best WordPress training you’ll find anywhere from many well-known speakers.

If there’s something you’d like to learn, and it’s not already covered here, it’s probably been covered at WPSessions. If you use the special link below you can watch your first session for free and get a steep discount on the full-access VIP membership.