Posts tagged Software Licensing
I recently stumbled across a book by Neil Davidson called “Don’t just roll the dice: a usefully short guide to software pricing”. It’s an amazing read and prefect in length, you could pick it up and finish in about 30 minutes, or if you a painfully slow reader like myself, an hour. The book focuses on software pricing and a way of going about it.
I think this is a vital topic to anyone wanting to break into the software market, and eventually trying to sell their software. I’ve seen far to many software products horrible overpriced and think they could sell much more by lowering their price a little.
But this depends on your target audience, if it’s individuals or cash strapped small companies or startups, charging hundreds of dollars for your software might not be the best idea. But if your targeting major enterprises, your fifty dollar product could probably sell for much more.
Neil touches on this pricing demand curve in Chapter 1, and provide a great basis for the rest of the book. Armed with some basic economic and target customer knowledge you can start to develop a cohesive pricing plan for your software. Neil mentions in chapter two that your software is more then just bits and bytes, and a nice GUI. Your product is documentation, support, development roadmap and so much more. In my opinion your product is also your company and the community surrounding your product, company or people.
In one of my Licensing System reviews I found a great licensing application called EZIRIZ IntelliLock. It was priced right, had the right features, but the company wouldn’t respond to my sales emails. If they can’t do that when I dangling money in their face what kind of support will I get when I bought the product and have a problem.
When your developing a product you should look at the marketplace and your competition. Figure out how much they charge and how closely the software maps to your product. But don’t analyze it in a vacuum, take into account the size of the company, it’s community and your perception of the value of the ecosystem around that product. Established products from larger well known companies can change more, even if your product is better you might consider selling it for less until you’ve made a name for yourself and your product.
Customers will compare, especially with the Internet. So if your selling your software more then your closest competitor you have to make sure you justify it to your potential customers with more features, better documentation, a larger community, etc.
As developers we like things round. So Selling software for fifty bucks even is great, none of those messy pennies flying around. But as Neil points out, fives and nines exert another powerful psychological effect on peoples perception of value.
Give Neil Davidson’s book a read and buy a physical copy if you enjoy it. You’ve spent tons of time designing and creating your product, now your only quarter the way there, now you have to market it, sell it and support it. Developing it was the easy part!
Today I’m going to review/test one of the licensing systems from the first post. The lucky system is Manco .Net Licensing System. I’ve decided to review one at a time because the posts were tending to get very long in some cases, so I’ve broken them out. If the post isn’t too large I’ll see about combining multiple reviews.
So what I’m looking for again? An out of the box licensing system capable of tracking licenses via a web service. One that’s a good ambassador for my software product as it one of the first things my customers, or potential customers, will see. I also am interested in the look and feel of the system, documentation, support and possibly the community around the product or company.
Manco .Net Licensing System
Cost Range: $74.95 - $1,164.95
Source Code Available: Yes
Model: Per Machine
Last Update (As of this post): 6/1/2009
Last Version (As of this post): 4.1
VS Support: 2005/2008
The first thing I noticed is that the web services for the Manco licensing system seem to be split among a couple of different services a Floating License Web Service and a Activation Web Service, which seems strange. Additionally each service seems to be needed to purchased separately, or in a more expensive package, at a cost of $179.95 each. I’ll get on a soapbox for only the rest of this sentence and say I hate being nickel and dimed.
After downloading and installing the Manco Licensing System trial I got three new shortcuts to play with.
Because my VirtualPC image doesn’t have Microsoft Word installed I was unable to read the documentation. It’s seems strange that they wouldn’t just convert that to a PDF instead of forcing their customers to have Word or a Word Viewer install on their box, so I was unable to read that document.
The API documentation is just that, so there wasn’t much of a Quickstart for me there either.
What I did notice was that there weren’t any sample with the trial install and I had to download them separately. Looking at the code there were a large amount of licensing specific information that had to be setup and configured in my class.
Already in the start of this Windows Form class I have an attribute, private member and three calls inside my constructor. This isn’t so bad and I could completely live with it, but it does create a code smell that I’m not comfortable with.
Further down the class there is a large chunk of code that is the ILicenseKeyProvider members that have to be implemented due to the ILicenseKeyProvider interface that was added to the class. This is just a bunch of public properties that expose settings, all of them just have getters that return hard coded data.
There are a total of 12 property based settings that need to be implemented. It begs the question, why couldn’t most/all of these settings be implemented inside the license file. This is a lot of license system implementation leakage that now appears inside my UI code, that I don’t think should be there.
Finally it appears that you have to write your own license interface. Now this has some great benefits, for example you can make as nice or as plain of a form as you wish. But not proving a basic one I think forces more work on the users, as for every application they either need to clipboard code it or write it again. Having a default, elegant but simple, licensing interface that can be overwritten by your users, if they want to, is the best solution in my opinion.
The main license creation and management interface seemed ok, but cluttered and possibly a little complex. But it does try and integrate some business elements, like sales and other features.
What I noticed was that you needed a customer or sale to generate an unlock key, which means you will have to generate a key after a sale and will require you to integrate this with your sales pipeline. For small software products it probably best to generate 5,000 keys and allow your POS solution to dole them out. The unlock key is very long, so it’s a copy and paste solution only, which I’m not a fan of for 90% of my products.
I’m not a fan of implementation leakage from Licensing systems and I believe that there should only be a couple of lines of code, a reference or two and a file in your solution to accomplish the 80% scenarios. If I need something more complex, like my own licensing screens or logic, then I have no problem with the leakage. The Manco .Net Licensing System seems like it has promise, but feels like the they tried to do too much and missed the mark across the board. Also their prices and pricing scheme drive me a little batty.
Final thoughts; it’s too expensive and it seems disjoined have 4 downloads to get it all. Their License Manager application is hard to navigate, use and is overly complex. The sales/customer system while well intentioned seems overly restrictive, license keys are way to long for the vast majority of applications and their is code smell and implementation leakage in the client application. But the few places on the grand old Internet that do mention it say that their customer server and support is good, which honestly can make up for a lot.
Today I’m going to review/test one of the licensing systems from the first post. The lucky system is Ionworx SerialShield. I’ve decided to review one at a time because the posts were tending to get very long in some cases, so I’ve broken them out. If the post isn’t too large I’ll see about combining multiple reviews.
Ok, so now that we have the first licensing systems to test I’m going to cover what I’m looking for again, which is an out of the box licensing system capable of tracking licenses via a web service. I also am interested in the look and feel of the system, documentation, web site support and possibly the forum on the site.
Cost Range: $531.00 – $1,061.00
Source Code Available: No
Model: Per Developer
Last Update (As of this post): 1/20/2009 (Aprox)
Last Version (As of this post): 18.104.22.168
VS Support: 2005/2008
What can I say about SerialShield, it’s supports non .Net Environments and seems like it was originally geared for a non .Net Environment. My initial impression from installing the software on my Vista x64 development system was that it installed to C:\ionworx\serialshield and did not have any start menu options.
No I’d like to think I’m not a picky or prima donna ‘power user’ but I think some things are just fundamental, a start menu item is nice and don’t clutter my root with too many folders. But thats just a personal gripe and not really a major issue, so I’ll just forget it ever happened.
Once I found the application and fired it up I was lost, what was I supposed to do and how do I do it? I like to think I’m a reasonably smart person, although my co-worker would probably disagree I just started clicking around. Before I went any further I decided to try and locate the help or documentation, which I couldn’t find in the application itself so I looked in the directory and found a .chm file, just what I was looking for….or was it?
Some applications just don’t need a lot of documentation. I’m working on a tiny one that just doesn’t have a lot of features and is really simple, but even it has more pages then this, which is a sign of concern for something that I’m supposed to be integrating with my applications.
Although I spot them quick in everyone else’s writing and find none in my own spelling errors just jump out at me. No I have many spelling errors in my writings and applications and I’m a native speaker, the makers of this application may not be, so I won’t comment on it.
The SerialShield API SDK and overview are not too bad, and have a fair amount of information in them. But I want to try and use the application, I’m not even to the point of trying to use the API. So I clicked on the “How SerialSheild work” topic and started reading. Almost to the bottom of the page something popped out at me.
After I read that I asked the documentation, “Shouldn’t you be doing that for me?”. But it never responded. After, finally, getting the app into a state where I could start integrating it into my application I came across something strange, SerialSheild has a concept of a Serial ID and a Serial Number, which threw me for a loop.
The Serial ID is like the keys found of the back of CD or DVD, commonly referred to as CD-Keys. Normally those keys active the software product, as they are the license key, but in SerialShield those keys can be used to identify the unique version of the product. The Serial Number is the actual license key in SerialShield and it has to be locked to a license owner.
The License Number is actually a very long hex string. An example of it is (FEF90307-4AEE3351-03199F44-F9BDA0CB-4A8E5F23), 5 blocks of 8 hex characters for a total of 40 values, ouch. By adding a lock key to Serial ID and Machine ID I did get it to add another character making it 41 total values.
To get the trial working you need to generate and embed the trial Serial Number in the application, along with the AppliationName and ApplicationKey information. Now came the point where I wanted to try and get SerialShield working in my application, so I fired up the C# demo app and took a look.
First I noticed that the SerialShield.dll was not referenced in the application, but instead was using DLL Import, which means that the SerialShield DLL was not managed, for some that could be a deal breaker.
After that you had to do a fair amount yourself to get it to validate the license and do some checks. I must admit I stopped testing here as was pretty put off by this point and couldn’t see SerialShield further redeeming itself. To me this is fifty dollar application and I was extremely surprised to see it selling for a little over $500 for the manager and an additional $300 for the activation service. You can buy DeployLX for under that, the full version with source costs $999.99, so even that is cheaper then this product, and light years more powerful.