Thales banner

Software Versioning Basics

For software vendors, changes within a software offering that do not change the essential product, but rather increase functionality and fix problems, are called new software versions. Software updates are part of any software's lifespan. Over time, new features are released, developers fix bugs, and the span of the software evolves as exciting updates and new versions are created. Therefore, software versioning is an integral part of the production. 

software versioning and semantic versioning

Software versioning is important because it helps both users and software providers track the different versions that the company releases. Users rely on software developers to keep them up to date, and they expect a methodical way of understanding when and what updates are released. For software vendors, versioning is even more critical. They track software versions and use the insights they gather to power their segmentation and monetization plans. By separating essential and secondary updates, vendors can highlight, segment, and charge for certain features. Software vendors also benefit from identifying clients using the latest software versions and isolating those that still need to update. Tracking version-use by customers reduces the risk that a customer will use outdated software and have a poor user experience. 

What is software versioning?

Software versioning relates to the different versions of software that the software company releases. Each version of a piece of software that is released receives a software version number. Understanding version releases and changes is vital for C-level leaders with a comprehensive vision of the company roadmap, and project managers who need to ensure projects are moving forward according to plan. Individual users also look at software versions on their computers or smartphones to verify they are using the latest systems.

Every software version has a name. These names are usually numerically assigned, and there are several standard systems for the progression of software versions. 

How do you name software versions? 

As mentioned, different companies use different methods for naming their software. While semantic versioning is the most common naming system, there are other methods worth mentioning.

Whatever method you choose, sticking to one way of numbering is an irrefutable requirement. It enables your company to stay organized and helps users track updates and releases to a specific piece of software.

Some of the most common methods of software version numbering are:

•    Semantic numbering – Three-digit numbering technique based on Major.Minor.Patch
•    Date-of-release – The software version number is the date of the release. For example, 20.06 (June 2020)
•    Unary numbering
•    Alphanumeric codes
•    Sequential numbering

What is semantic versioning?

Semantic versioning is one of the most common methods of numbering software versions. This method uses three numbers for each software version, in Major.Minor.Patch sequence. When a major, minor, or patch update is made, the corresponding number is increased.

•    Major version changes are related to incompatible API changes.

•    Minor version changes are related to adding new functionality in a backward-compatible manner.

•    Patch version changes are related to bug fixes which are also backward compatible.

The version number is increased by one digit, depending on the type of changes made in the new versioning.

For example, software version 1.3.1 means that the software is in its first major version, with three additional functionalities added, and one patch fix implemented. When a developer fixes a bug in that version, the next version release is named version 1.3.2. 

What is semantic versioning in software development? 

Semantic versioning is used widely in software development to number versions of software appropriately and make customer use as easy as possible.

Some products don't need the detailed representation of Major.Minor.Patch numbering, and use a simpler Major.Minor. system instead. In contrast, some companies who have frequent releases take the numbering scheme even further. They add a Qualifier at the end of the typical semantic scenario. Therefore, instead of a three-number string, the software version updates would have four numbers.  

Semantic versioning offers flexibility within a strict structure. Each organization should identify the correct level of detail they want to publicize in their updates, while remaining informative and useful for the end-users

Software versioning best practices

When deciding on software versioning tools to use in your business, remember to keep your software users in mind. After all, the versioning numbers are there to help them.

What are software versioning best practices?

1.    Remain transparent and consistent

Users want to know what to expect when it comes to their software updates and releases. For example, everyone knows that Apple releases a major iOS update once a year, and users look forward to these updates. If Apple started releasing major updates on a sporadic schedule, users would be confused and disappointed. A lack of trust between the company and the user creeps in, leading to less customer satisfaction.

2.    Publish a release schedule

No one wants to be surprised by a change, so publishing a release schedule lets users see what is about to happen increases communication and trust between your company and your software users. A release schedule also helps when your customers give you feedback that your product needs updates or changes. You can point to the release schedule, and assure them that you are already working on solving their problems.  

3.    Explain your versioning system 

Explain semantic versioning to your users and teach them how to read and understand your version numbers. Explaining your system is especially important when you sell B2C, when you can assume your clientele doesn't understand semantic versioning, but it also applies in B2B selling.  

Different companies do this in different ways. For example, you could include these communications in your documentation, mailing list, or even on your social media channels. 

4.    Let users know what's new in your new version

Whether you are releasing the most incredible software update ever, or just a small little, let your users know. You are working hard to keep your users satisfied—share that information. Your accomplishments is a highly effective way of showing your customers how much you care about their success. This information should be clear to users, whether they are IT pros or have no tech background.

5.    Ask your users their opinion

People like to feel valued, and there is no better way to make people feel important than asking their opinion. Plus, chances are, if you request user feedback, you'll get valuable information from an entirely new perspective.

Can your users if they can identify new software releases easily? Can they keep up with the pace of new updates? Do they know what is worth downloading and installing for their specific use case?

Keeping open lines of communication between software users and companies can significantly improve the software versioning process and guarantee that your users remain happy and satisfied with your service.

Thales: your solution to software versioning 

With Thales software monetization solutions, keeping track of your software versioning has never been easier.

Our host of solutions help you keep your software updates systematic and organized so that you can reach your business goals, maximize revenue, and increase customer satisfaction.

How to Get Software Licensing Right the First Time - White Paper

Navigate The Process of Licensing, Delivering, and Protecting Your Software - White Paper

How to Get Software Licensing Right The First TimeCheck out our practical guide to navigating the process of licensing, delivering, and protecting your software. Discover the importance of optimizing your software licensing. Avoid common mistakes with the expertise you...

casio case study

Create New Revenues with Flexible Licensing Options - Casio Case Study

Casio Creates New Ways to License and Monetize its Software using Thales SentinelA worldwide manufacturer of consumer electronics and business equipment solutions, Casio has introduced digitalization in its business, starting with software licensing model for its renowned...