How to Satisfy Widely Diverse Customer Licensing Requirements

By Mike Wozniak  |  Software Licensing Tips

Posted:  March 13

​As our library of licensing tips blog posts has grown, we have noticed a recurring theme appearing in several of our most popular posts.  Repeatedly, we recognize that there are no "absolutes" in software licensing. Instead, there are various advantages and disadvantages to each choice made in your approach to licensing business logic.

"One Size Fits All" Challenge

It can be seriously challenging to create a "one size fits all" approach to licensing your software. Some examples of this include:

Solution #1 - Separate Builds Per Customer Profile

​Some customers will want to spend the least amount of money on your software.  Since these customers may also be the ones who you trust the least, you may want to restrict these customers from using your software in any of the environments where they can more ​easily bend the license rules, such as running in a virtual machine environment.

Customers with larger businesses may be willing to offer you additional money in exchange for more control or autonomy, especially concerning the important software that runs their business.

Software publishers who deal with military / defense contractor / highly secure / disconnected environments (which by their nature are the hardest in which to maintain control),  often say that they trust these customers the most.

Since it is relatively simple to create multiple builds of your software, your development team can customize the licensing business logic for each customer profile. Your sales team can customize the pricing so that the higher price points for the builds with relaxed license validation offset the risk of customers bending or cheating their software license.

​Your sales team can customize the pricing so that the higher price points for the builds with relaxed license validation offset the risk of customers bending or cheating their software license.

Click to Tweet

​Instead of distracting your development team in an attempt to satisfy all potential customer profiles, consider the 80 / 20 rule.   Doing so will allow your team to create builds for only the customer profiles that will generate the most revenue for your company.

Solution #2 - Including Restrictions within the License

Instead of using separate custom licensing business logic within different builds, you can include the licensing business logic for all cases in a single build, and then determine which restrictions should apply based on the license that you have issued.

The license parameters/restrictions will designate whether this customer is allowed to run the software in a virtual environment, or when/if the licensed software needs to validate with the central license server. This approach also allows you to more easily make adjustments to certain license restrictions, as you can simply issue an updated license as opposed to updating source code and deploying a new build.

​How Can the SoftwareKey System Help You?

The SoftwareKey System offers various standard features to control the environment on which the software is allowed to run and can dynamically change license validation algorithms on these environments. 

With our most advanced licensing client, Protection PLUS 5 SDK, you have the most flexibility to include whatever custom license parameters/restrictions you want. Our License Validation Options in SOLO Server Automation make defining and updating validation settings quick and easy, and we support a variety of ways of defining custom license data.

Feel free to contact us if you have questions about dynamically-changing license parameters based upon detected environments.

About the Author

Mike Wozniak is the founder of and responsible for marketing, content and product strategy. When he isn't plotting new ways to help customers solve licensing and business automation challenges, he likes to travel and entertain guests who come to visit the Orlando area.

Mike Wozniak


Related Posts

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}