Open topic with navigation
Defining Licensing Requirements
Before beginning source code integration, it is important to define the application's licensing requirements. Several questions are listed below, which are designed to help you establish a list of requirements for each of your applications.
In order to best identify your licensing requirements as outlined below, it is often best to start with a complete list of use cases. In other words, list out all the different ways you wish to allow someone to purchase, use, license, activate, manage the license, etc... If you wish to take a more illustrative approach, you can also story-board the process using rough wire-frame representations of what you would expect users to see in your application.
Skipping the use case brainstorming scenario is likely to bring you the burden of more work in the future. The SoftwareKey Professional Service Team is happy to work with you through a discovery process to make sure all use cases have been listed and thought through. We can help you by asking questions and discussing advantages and disadvantages of each licensing approach. Please contact us for assistance.
Basic Requirements
- What are all of the possible ways customers will purchase licenses to my software?
- An online store with a credit card and automated license delivery
- An offline purchase by another method and manual license delivery
- What types of licenses and restrictions must be applied for your application? Some examples include:
- Evaluation (also known as trial, demo, or shareware)
- Periodic (also known as lease or subscription)
- Non-expiring
- For each type of license which may be issued, should the license expire, and if so, why and when should this occur? Here are some arbitrary examples:
- Evaluation licenses should expire after 30 days.
- Evaluation licenses should expire after 10 uses, or 7 days, whichever occurs first.
- Subscriptions may be purchased, which last 90 days. After 90 days, a subscription renewal may be purchased to extend the license subscription an additional 90 days.
- What are all of the possible ways customers should be able to activate / deactivate / transfer licenses?
- Will Internet connectivity be required on the system being activated.
- If Internet connectivity is not available on the system being activated, is it practical to use another system which has Internet access to activate the target system? (This is possible to do by transferring files via removable media, like a USB drive.)
- If Internet connectivity is not available, how else should users be able to activate? (For example, telephone, fax, etc...)
- How reliable is Internet connectivity for your users? Contributing factors which can impact this includes (but are not limited to):
- Internet connection speed and quality. Mobile, dial-up, and satellite connections may be slower or less reliable than other types of connections.
- Personal firewall software, which may block individual applications, and require users to occasionally configure an exception.
- Network firewall configurations may be configured with very restrictive policy.
- Proxy servers sometimes require additional configuration by the end-user, and may also be configured with very restrictive policy.
Advanced Requirements
- Will your application allow users to electronically manage their licenses? This can include actions such as deactivating or transferring activated licenses, which is only supported when activation through SOLO Server is used, and therefore requires Internet connectivity either directly or through a nearby machine.
- Will status checking, or phoning-home, be supported or required? (This should be required if users are allowed to deactivate or transfer activated licenses.)
- How often will your application try to perform status checking?
- How often will your application require status checking?
- Does your application have modules and/or features that need to be licensed as well? If so...
- Does each share the application's license? If so, do they only need to be toggled (enabled/disabled) conditionally?
- Does each instead have its own license (meaning these questions should be asked separately for each applicable module or feature)?
- Should customers be able to purchase software maintenance renewals online?
- What are the pricing rules when their maintenance is current versus expired?
- How long after expiration should they be able to renew before paying a reinstatement fee or being forced to purchase a new license instead.
- Does your application consist of a suite of applications? (This can be similar to the modules and/or features described above.)
- Does your application run in a networked environment, where a group or groups of users share a single license?
- Does your application need to support pay-per-use restrictions, and require reactivation after each use or several uses?
- Should customers with expired software maintenance be able to download minor version updates? Major version updates? For how long after the maintenance expires?