Do it yourself Licensing and {SmartAssembly}
I’ve received a few questions about a product I mentioned called {SmartAssembly} from, as of September 1st 2009 RedGate software. {SmartAssembly} won RedGate’s million dollar challenge. First {SmartAssembly} is is not a licensing system but a code protection and optimization system. I’m a best of breed kind of guy, for example I try to always try and choose the best product or solution of as possible. Why not choose a code protection system and licensing system in one? Well the ones I’ve seen don’t offer the protection I want and I believe they are two completely disciplines. Code protection is about bits and security, while licensing is about business.
You can make the argument that code protection is also about business as it protects your IP (Intellectual Property) but the business of code protection is protecting other peoples IP with techniques and processes. Licensing to me is a zero sum game, the more intrusive your licensing scheme is the more it takes away from your users experience with your software. A well written, well designed and great looking program can be thrown away because of it’s licensing system.
As of the time of this writing I still haven’t found a licensing system that meets my price-point and required feature set. I’m unwilling to compromise on a system that will have a massive impact on my potential and existing customers and will be a core part of my business workflow.
I’ve been asked why I wouldn’t just build one myself. I did build a little component to enable my applications with trial functionality ‘which I won’t plug here’ but building an whole licensing system is another game completely. I believe that you should spend as much time working on your product and not licensing, well unless that is your product. Time you spend building your licensing system takes away from designing, coding, testing, QA and business tasks for the product you are trying to sell. Building something myself isn’t my first, second or even third option.
Building a single licensing system for all your applications can be a major problem. Crack that one licensing scheme and someone has access to all your products. If this was a licensing system provided by someone else then they would have new versions with countermeasure to protect your software by monitoring all the cracks against it. Rolling your own licensing means you should have to keep it up to date, which could be drain on your resources.
As I’ve stated before I’m unwilling to compromise on licensing and in the end that might mean rolling my own, but it won’t be until I’ve exhausted other options. Being a business owner and developer means there is a constant battle between the two completely different personalities and I have to be sure that I’m diving head first into coding with a clear reason and business sense to back it up.