We had a great time spending August in Norfolk (a 30-year tradition) with lots of sailing and walking.
When I got back in September I started wrestling with how to license, price, sell and fulfill the sale of the SpeedTools Function library.
(This is displacement activity from tackling coding the FILTER functions …)
Fight Scope Creep by Splitting!
The first decision was that scope creep (rapidly heading towards 100 additional Excel functions!) had got to the point where I needed to split SpeedTools into a number of products:
- SpeedTools Calc – The extended calculation methods and options
- SpeedTools Lookups – The fast Lookup and Comparison functions
- SpeedTools Filters – The Filtering, Sorting and Distinct/Unique functions
- SpeedTools Extra – the Math, Logical, Array, Text and Information functions
- SpeedTools Premium – a bundle containing all the other 4 products
SpeedTools Calc contains all the User Interface stuff and is mostly a VBA addin, and the other 3 products are mostly contained in an XLL.
Choosing an E-Commerce provider
When I started selling FastExcel in 2001 we custom built the website and licensing system that took the orders, priced them, maintained the License database and linked to Worldpay for the credit card processing in multiple currencies, then automatically emailed out the License codes etc. The system has worked pretty well for 11 years but has some serious limitations and would need rewriting to handle multiple products.
So I started looking at the many available E-Commerce providers who handle software sales. I found a useful starting point here.
More research gave me a shortlist of Avangate and FastSpring who both seemed to tick most of my boxes:
- Reasonable costs
- Multiple currencies
- Integration with licensing software
- Multiple products
- Volume Licensing
- Credit Cards (including AMEX), PayPal, Purchase Orders, Money Transfer supported
- Coupons, promotions, time-limited pricing
Licensing and Piracy
As we all know, its pretty easy to hack a VBA addin, and difficult to prevent casual copying of your XLA/XLAM product. For FastExcel I used an installer that required required an installation password, but I wanted a better defence against casual copying for SpeedTools. I decided to use a License activation system, and so looked at the systems that were already integrated (see FastSpring DRM) with my chosen E-Commerce provider FastSpring.
The system I chose can be integrated with Excel VBA and VB6 addins as well as .NET and C++ stuff. You can embed a time-limited trial license inside your code and then upgrade with one or more licenses. It uses Public/Private key encryption and you can choose what kind of machine binding you want to use.
To make this work you also need a web server for the license database that can dynamically link both to your E-Commerce provider and to your application. I did not want the cost and hassle of hosting and maintaining my own license server and so opted for a system that provides a hosted web license server for you.
If no valid license to any of the products is found then the products do not load. If there is at least one licensed product then the User Interface and Help for all the products is shown, but using for example a MEMLOOKUP function without a Lookups license will make the function return a message saying “No valid license found for this function” to the calling cells.
Is this hacker-proof? Probably not – nothing really is, but I think its more than enough to stop casual copying.
Implementing all this is quite complex because you have to integrate a number of things:
- Your own Website to sell and link to the Ecommerce provider
- setting up the E-commerce provider and linking it to the License activation server
- creating an install package that delivers and installs all the requisite software and files and products
- integrating the licensing software into your products, including the UI for managing the licenses.
Deciding on the right price for your software product is impossible.
I started by looking at what prices other people charge for Excel addins, then considered how useful each product would be to someone who needed the function provided, and how much time and effort had been used to create them. For most of these products I could not find any real competitive products.
This gave me a range of base prices for the different products (currently $29 (Calc) to $69 (Lookups), but this might change!).
The next step was to consider volume discounts. There are 2 main scenarios to consider here for a function library:
- An individual who wants a license that covers work and home (so 2 PCs)
- Workbooks that will get used by a number of different people on different Machines.
My current thinking is to start with a very steep discount for 2 licenses (so that buying 2 costs only 30% more than buying 1) and then increase the discount progressively for larger volumes.
It has taken me about 2 weeks work so far, and there is probably another week needed to finish, but thats not too bad considering the complexity of the task and that (hopefully) the system will be in use for the next ten years or so.
So what level do you think I should price at?
And how do you feel about license activation?