Yesterday, my colleague and friend Pierre asked my opinion about whether or not people would be ready to pay 20 bucks for the right to use well crafted and well documented software components. This spawned a discussion about how to make money with software components.
Here are our thoughts for you to enjoy, comment and contribute. Have you any idea or experience do not hesitate to leave a comment.
So, what is it in a software component that can be sold?
The right to use it
Nowadays most people consider software as a commodity, free (and open source) is the rule. Even shareware looks like something of the past, you can find “donate” buttons but it seems hard to make a living of it.
Some models, like Ceki Gulcu’s Logback project (in part), consist in building commercial extensions on top of free software.
The right to distribute it
To me, the best option is dual-licensing. Let free projects use and distribute your work for free and grant commercial licenses for commercial projects.
However, the advent of SaaS is a threat to this model. The Afero GPL may help, but not much. Offering online web services may be a solution.
The right to influence the feature roadmap
I like this one, and the best example I know is Intalio’s Demand Driven Development: Let your customers bid on features they are willing to pay for.
This is how jBoss started and now Marc Fleury is sunbathing in Spain (sort of). However, this works better for complex systems than for components.
You can offer consulting around your product (like installing, configuring or extending) or use your product as a marketing tool for other consulting services. That’s what most of the component developers I know of are doing (that’s actually what I’m trying to do with the DITA-OP).
There is a sixth option but then you components may not be components anymore (depending on your definition of Software Components).
Online Web Services
Offer online services based on your components and let people pay based on their usage, much like the Amazon Web Services. This works only if you have enough customers to cover the infrastructure (hosting, support, etc).
Depending on what your components are doing and what is your target market then you can mix those revenue streams but not everything is going to always work. For example, if you have a set of highly specialized financial components you can sell licenses to use and distribute (because they are highly specialized) but you can hardly build online web services on top of them because financial institutions are not willing to use that kind of services (it can even be forbidden by local regulations).
What do you think? What else can be sold in software? How can it be sold? Do you know strange, but successful, business models?
Image Credits: Luis Miguel Munoz-Najar