How to license your software: considerations and common licensing models
Choosing a license model is a critical business decision that a software publisher needs to make. The license model will have a direct impact on the popularity of the software, the revenue, the expected amount of support, and the types of customers who will use your software, and even affect the frequency as well as the conditions in which the software is used. After customers begin using one licensing model, it can be tricky to switch them to a new model.
A lawyer would draft up a contract between the user and the software publisher known as the license agreement, typically referred to as an End User License Agreement or EULA for short. This document outlines the terms in which the software publisher permits its customers to use the software and can describe usage rights, usage restrictions. Implementing a complex licensing model can be difficult without using a third party solution. Below is a list of the main considerations a publisher should have when determining usage rights, along with some of the most commonly-used licensing models. Please note that we do not cover open source licensing in this article, as we will cover it in another post.
Main considerations on issuing usage rights for your software:
Many small publishers issue a single perpetual license key which unlocks all functionality to their software. This is usually done for simplicity since it can be difficult to implement a sophisticated license model. Additionally, the license model is often an afterthought for software publishers, busy adding new features, or maintaining their code. Here are some questions the managers and chief revenue officers at software companies should be asking themselves:
How many computers (Nodes) do I allow a license to be used on?
Some customers might expect to buy a license which they can run on all of their home computers. Business customers might be looking to purchase a license which can be used for all of their employees. Depending on the type of software that is being licensed, it could be important to define how many machines are allowed to execute the software. This is usually an important consideration for desktop applications, for instance.
Who is allowed to run my software?
A license can be assigned to an individual or to a group of people. This can be independent of the computers that end up running the software. For example, web services intended for an end user like a movie streaming service might require a user to identify themselves, but not care which computer ends up being used to consume the media.
How long can a licensee use the application for?
This question is an important consideration for many types of businesses. Some software vendors incur a significance cost for running the software, such as rendering farms rented by CGI studios. Depending on the business model and the cost structure, it may make sense to license software by the amount of time the application is run, by expiry date, or by number of times that the software is executed.
Should I offer a trial of my software?
Allowing people to try your software can be a great way to convince people to purchase a paid license of your software. As a software publisher, you will need to decide the duration of the trial, whether you limit the functionality of the software (your trial might have fewer features than the full version of your application), and how much information you require to have up front before you issue a trial license to your user. Offering a trial is ubiquitous and expected from most software vendors.
Which environments can your software run on?
A license might be platform independent, or platform specific. However, there might be reasons to issue licenses specific to the machine’s environment. For example, your windows application might have dependencies to a 3rd party libraries while your mac application might have other dependencies, and you may wish that your license reflects that difference given that you may need to pay royalties for those dependencies, and adhere to their respective licensing agreements.
Major Release Versions of Continuous Release Versions?
It is becoming increasingly common for applications to be continuously updated. The main advantage of continuous updates is that all customers use the latest version of the software, meaning that there is no previous editions of the software that needs to be supported. This model is often used when software needs to be updated often or whose feature set us constantly expanding. The end user is usually billed as a subscription. However, it does not always make sense, especially if feature updates and maintenance is not critical to the end user, who might prefer to buy and to occasionally upgrade to major releases instead.
Should you include a maintenance agreement with the license?
Some customers expect unlimited usage rights forever for the license that they purchase and will not accept subscriptions. One possible solution would be to offer maintenance plans that customers can choose to upgrade whenever theirs expires, in order to get the latest features and updates.
Should all features of the application be available for the end users?
Often times, customers are only interested in a small subset of what your product offering can do, and sometimes feel like they are overpaying for bloatware when forced to purchase the full version of the product. Software Publishers could release several editions of the applications which each have a set of features, and create licenses for each. You could also license the features within the same release. Purchasing a license would unlock new features in the software which are otherwise inaccessible.
Should customers be able to upgrade to different / newer versions of the software?
If there are several editions of your software each providing a subset of your software’s feature set, it’s logical to offer upgrade options to your customers which is discounted compared to a new license with the expanded feature set or the newer version.
Can a license be used concurrently?
Businesses sometimes look for ways to reduce the cost of software that they license, and one of the more creative ways is to share simultaneous usage rights across several computers. For instance, companies will sometimes ask to install an application on a large number of machines, but only a small number of them can actually execute the software at the same time, which is usually offered by the publisher for less.
Given these considerations, here are some software licensing models that have become commonly used in industry, and many can be combined:
Node Locked Licenses: License key / License file specific to a specific machine / number of machines or IPs within a network.
Perpetual Licenses: The license is valid for an unlimited period of time.
Time-based / End-Date period licensing: The license expires after a certain date or after a specific amount of time after the key had been initialized or activated.
Trial Licensing: a license for trial simply enables the trial mode of the application, usually feature and time restricted.
Subscription: the validity of a license is dependent on the status of a subscription. So long as the buyer maintains an active subscription, the license will remain valid.
Named Users / Account Based Licensing: Instead of only using license keys to control licensing, some software publishers of to use other types of credentials, such as a name / email / password (or other fields) provided by the user in order to authenticate and use their license. There may not even be a license key at all, since they’d be using their account credentials in order to use the application. This approach to licensing is common for some online services such as content streaming of Database access.
Maintenance Contract Licensing: In addition to other aspects of the license agreement, being able to check and installing updates during an active maintenance contract can be an alternative to offering subscription licensing.
Floating: Many users or computers can share the same license, but the application can only run a single instance. You would specify the computers that share the license. Some software is cheaper to purchase “shared” licenses in this way instead of purchasing a license for each seat.
Concurrent licensing: Similar to the floating license model, but the license allows for multiple users can use the license at once. For example, there are 100 machines that share a license key, and up to 10 of them can run the binary using the same license at once. You could set the number of machines that share the licenses to unlimited.
Feature-Based Licensing: Ability to control which groups of features of an app can be used. This licensing model can be useful if the publisher wishes to release several editions of their application for different market segments or at different prices. Rather than offering different builds, the publisher could opt to provide a single build which ‘unlocks’ features based on the license key. Additionally, Feature-based licensing gives more opportunities to make people upgrade to more premium versions of the applications by unlocking features.
Usage-based/Consumption-based: The license is designed to unlock a pre-defined routine, such as the execution of a binary. Some publishers offer a trial as a Single Use License. You can use the full version of the software once to see if it suits your needs.
Multi-platform Licensing: Specifying whether a license is bound the software running on a specific environment, (Windows / Mac / Linux) etc. or whether it is platform-independent.
Offline Licensing: The ability to handle activate and use a software when no internet connection is available.
Identifying and then enforcing the right licensing model for an application is key for the success of your software business.