A not-all-that-uncommon call we get here sounds something like this:
Developer: Hello, Wibu? Hi, I need a dongle. Our code is ready to ship and we just need to bolt on some copy protection and license management.
Me: What exactly do you mean by "bolt on"?
Dev: We've implemented our own system, we just need to get the serial number of the dongle and read it back to the application.
Me: Hmmm, you can certainly do that, but you DO know that it can be cracked in like, oh, 10 seconds, right? (Briefly explains CodeMeter)
Dev: Well, that sounds good, but we already implemented this in source code and we're READY TO SHIP. Except for the license thingy.
Imagine if you're building a house and the contractor comes to you and says something like, "Well, we're ready for you to move in as soon as we figure out how to get running water to all the sinks and toilets. I think we're gonna tie garden hoses around the house, drill holes in the outside walls, and snake them in through the holes..."
Some recommendations for best practices:
- Include product marketing in the design and planning stages before coding. Adding requirements for how you want to package, market, and yes, license the software is important. You need to Design to Sell.
- During the design/architecture phase, make your outside dependency decisions so you know what degrees of freedom you actually have. If you're going to use CodeMeter, you don't need to do any API-level implementation, but you CAN, in order to gain certain flexibility. It's nice to know that up front before you are at code complete.
- Find out from support what activation and licensing problems users have experienced on prior releases. Make sure your solution addresses these issues.
- Get the sales team bought in. Could be that they have an opportunity to make some sales if you had a different licensing model. For example, they might be able to lease a product if you supported that. Or maybe a subscription could gain some traction in a key account rather than a perpetual license due to customer cash flow concerns. Point is, you won't know if you don't ask them. Again: Design to Sell.
Waiting to the last minute to plan and implement license management may be common, but so is missing your dates. The first will almost guarantee the second.