Suppose you have a product that sells for $1000 per machine on which it is run. Your revenue is based on the model of a single license handling about 1,000 users, so its a $1/user revenue stream. Now along comes Intel and AMD offering faster processing, dual processing, and other cool technologies and now your software can handle 10,000 users on a single machine. What do you do? It still costs you the same money to create, update, and support your software - but now your revenue stream is 10 cents per user instead of a dollar per user.
You could start charging $10,000 per server, but then nobody with less than 10,000 users can afford your software. Per user software increases your costs to support plus annoys the customer site who has to track it. Besides, what's a user? If you charge per user for server software, does that user get to use that license on ten servers? You could charge "per processor" for multiprocessor machines, but that just changes the equation on hardware from buying multiple processor to buying bigger and faster single processor machines.
Now start adding "Virtual Machines" into the mix. What if I run one really fast 4 processor machine configured with Linux as the host system and VMWARE hosting 10 virtual windows 2003 servers? Is that one, four, ten, or forty licenses?
I'm all for beating up on Microsoft, but as they struggle with this particular problem I have some small amount of sympathy. Its not an easy problem to solve at all. IBM attempts to address this with their "Express" licenses. These are real full blown software licenses limited to companies under a certain size. Its IBM's way of charging based on the size of the solution rather than the use of the software. Some will say that's a bad thing -- it is after all the same product. I say its a good thing, just hard as hell to administer.
You pick. Maybe you have a better model (don't talk to me of Open Source -- I make my living as a developer).
Comment Entry |
Please wait while your document is saved.
get ongoing fees for the stuff I developed in the past. My work is generally
heavily bespoke and is given to clients on an open source basis, however they
pretty much never distribute it outside their own business. Some components I
develop for one client then use in projects for others, sometimes if these are
generally interesting I release them to a wider audience. That model suits me
OK, but I understand your work is more in production of finished products which
are probably more generally robust and have more work in them than my
developments so you can't reclaim the development costs from a single sale
which is what I effectivly do.
I don't have a great suggestion for a pricing model for software products. Per
processor/computer/employee all have their drawbacks. Per company kind of gives
it away to the big companies and penalises the small ones. Some kind of
multiplier of the market capitalisation might be fair, but would not work for
non-traded companies, and departmental deployments get tricky. I think it comes
down to a question of "how much would you like to pay?" plus services revenue
for installation and configuration.