Software Versioning

Do you know what software version numbers are? Have you ever thought about how to version a release of your software? What approach should you take? Have you ever taken a look at the software under your use and asked yourself what approach did they take, or whether you should continue using them?

In this article, I’ll answer all the above questions. So, if you want to know the answer to all of them make sure to read till the end.

What is a software version no.?

It indicates changes in a software product. With time the development team works on their products to improve them, this results in a number of versions of the product. At the very least, there will always be two versions: a stable and a working version. The working version is the one the developers are working on daily to enhance the product. While, the stable version is the one that all end users have.

Along, with indicating change, version nos. can also be used to indicate the following:

 

  • Order of Release

 

If you line up all the versions of a software product from the first one to the last, you will easily be able to tell the order in which they were released just by looking at their software version nos.. This is true for almost all software version nos..

 

  • Degree of Change

 

They also help users/consumers understand whether the newly updated version has been changed just a little or very much since the last one. This is true for many if not all of software version nos.. 

 

  • Date of Release

 

A rare occurrence, but sometimes you can actually decipher the release date of a version by taking a look at its software version nos.. 

Who should care about software version nos.?

Whether you’re an IT Specialist managing the enterprise software of your organization, a manager who runs an automated factory floor, a coder creating the products used by these organizations, or simply an iphone/android user, software version nos. are written for you. 

Following are the two most important things for you to understand (as a user) when reading software version nos.:

  • Have any numbering convention been used, if yes than what?
  • What changes have been made to the newest version?

The detailed answer to these both questions lies in the release notes of the software, so it’s important that you read them thoroughly before blindly updating your software to the newest version.

Following are the two most important things for programmers to take into consideration when it comes to software version nos.:

  • What numbering convention are you going to use and why? 
  • Does the chosen convention help your product users make educated decisions about whether or not to upgrade? 

Enterprise Software Customers

As an enterprise software consumer, you should know the following things about version nos. when dealing with any software providers:

  • Understand how the provider presents version nos..
  • Make sure that a standard convention is being used by the provider. If they are not doing so, then it means that they didn’t put the required effort which could extend to other areas, as well.
  • Understand how often updates will be launched.
  • Make sure you have an idea of what kind of testing will be done at each level of release. For example, a full major version update will undergo far rigorous testing when compared to a bug fix for which only minor tests will be conducted. So, it’s important that your provider performs all the necessary tests to eliminate any potential risk before releasing a major version update. If they are not, then you should do one of these two things, either decline an upgrade or implement user testing on your own before adopting the new version organization-wide.
  • Understand all the changes that have been made with each new update.
  • Know if the provider has a backup plan in case the new version fails to perform the way it was intended.
  • Ensure that you know how to revert back to the old version before going with the upgrade, its important in case the new version causes significant issues.

Software Developers

Software versioning is an easy way for developers to help their customers understand the changes in their product. But if not done right, software version nos. can be confusing for both consumers and developers. 

For e.g. a software house recently released version no. 1.2.4.33 of their software product. The software house is using semantic numbering convention to keep track of their new releases, under which the 1st no. tracks major/big changes, the 2nd no. tracks minor/small changes, and the 3rd no. tracks patches or mere bug fixes. The 4th no tracks changes that are even less significant than a patch.

You can tell from 1.2.4.33, that this software house has not put much thought into which version no. to change as they update their software. They are just changing the least significant version no. every time they make a change. After 33 updates, there has almost certainly been small or big changes to the software. Nonetheless, they are still updating the 4th no. 33 versions later.

Not only is this confusing for consumers, for whom it’s impossible to tell what each update has accomplished, it’s also bad for the software house. It will not be an easy task to get users to upgrade! This software has 33 different versions, each with an untold number of differences. Users will almost certainly be reluctant to risk changing their current version for something so ambiguous.

Software Users/Consumers

Even individual user such as iphone/android users encounters software version nos. on a regular basis. Pay attention to them and understand what they mean for the software that you’re using.

Commonly, software version nos. will help you differentiate between small and big changes using a semantic numbering convention. Take a look at versions, the one you’re using and the update ones. If the no. that tracks big/major changes has been incremented, then understand that a lot of things will change once you are done updating. If the no. that tracks bug fixes has been incremented, then you risk very little change in the way you use the software.

As mentioned above, it’s important that you read the release notes of the product thoroughly before blindly updating your software to the newest version.

Software Version Conventions Done Right

By now I hope you know what a software version convention is and what it does. For those who are still struggling, well, it’s a numbering pattern that both software developers and consumers uses to track changes and releases to the software product. When software version nos. adhere to a standard version convention, they can help consumers understand the risk associated with upgrading software.

Discussed earlier, semantic numbering convention is one of the most effective software version convention along with date-of-release, alphanumeric codes, sequential numbering, and unary numbering.

With semantic numbering, developers communicate the degree of change associated with each software version update by categorizing versions into big/major, small/minor, and bug or patch updates. The patch no. is incremented for changes that are not meant to alter the product’s existing functionality. Companies usually increment this software version no. after fixing a bug that’s been introduced to the software.

The small version no. is incremented when developers add new features to the product that are still compatible with former versions in the same big category. For example, a 3.2.4 version will still be compatible with 3.3.0. If a software provider has released small version updates, it’s likely they will still support users who do not upgrade because the updates are backward-compatible.

With small version updates, users will definitely see changes to the software’s functionality and features. But the change is less risky for users because it still runs along the same vein of compatibility as other small versions in the same big category.

When developers make significant changes to a software product’s API, they will increment the big version no.. This means that the changes are extreme, to the point that they render the software incompatible with older versions. At this point, the product has evolved drastically. It is no longer operating on the same vein as previous versions. For e.g., while a 3.2.4 version would likely be compatible with a 3.3.0, it may not be compatible with a 4.0.0 or higher.

Occasionally, you’ll find software numbering conventions that involve dates or letters of the alphabet. These conventions generally track the same thing, small vs. big changes, using a different nomenclature.

Conclusion

The only wrong software version no. is the one that’s not following a convention. If you find yourself using software that does not follow a version convention, you’ll want to be extra careful about making updates. This could also be a sign that it’s time to start looking for a different software provider.

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.