An open source business model
Following is a series of notes on an open source business model that I think could unleash community driven software development.
Today, workable open source business models that involve community driven software development are rare. The two models you typically encounter are:
- You start and lead an open source project, and sell services around it; but I hardly see how this model can work, since you end up financing the R&D of your competitors
- You contribute to an already existing and widely supported open source project, and sell services around it; making this model a bit more workable
Arguably however, neither model is a panacea that can compete against Microsoft's $6,000,000,000.00+ R&D budget — the figure is so much more impressive when you align the zeros.
The reason for this is not so much because the R&D figure is gargantuan, since David reportedly beat Goliath. Rather, it is because the ‘D’ chunk of that amount is spent in a very focused, goal driven manner. To paraphrase Bill Gates on the topic, ‘Development’ differs from ‘Research’ at Microsoft in that there is a release date — and thus milestones — attached to it. And focused, goal driven resource allocation is always more efficient.
Community driven software development, you might be willing to say, is just as goal driven and focused as any commercial software development. But you would be wrong. Community driven projects need to reach a consensus among the parties involved in order to avoid forks. Moreover, geeks are quite prone at reinventing the wheel every so often for the sake of doing things “the right way” — just count the number of open source text editors. All this may very well be goal driven from time to time; but it is order of magnitudes less focused and efficient than commercial driven projects.
Thus, a proper open source model needs two enhancements when compared to those that exist: A way to increase the revenue stream on the one side; and a way to make things more goal driven and focused on the other.
Finding an alternative model, I think, is easy enough: You can sell open source software. Of course, you'll be even better off selling services on top of it. The key point here, however, is that you can sell the free software, so we'll stick to that in what follows.
This is little known, but many customers are happy to pay for open source software — they'll even pay for upgrades. And interestingly, customers are much less inclined to perceive free software as worthless when you charge them hard-earned money for it. They'll even label free software as high quality if you charge them a sufficiently large amount of money.
I sense skepticism. If you are dismissing the thought of selling free software (as in freedom), my guess is you haven't read the GPL. It says nowhere in the GPL that you need to give away your source code to the community for free, and GPL has nothing to do with communism. It merely says you must readily reveal your source code to your customers. And expect said customers' incentive to keep said code secret to reach biblical proportions when you customize it to their requirements.
Likewise, if you are dismissing the thought of selling free software (as in price), my guess is you don't know much about economics. Selling free software is achievable because markets suffer from information asymmetry. Sometimes, your customers are not even aware they can download the source code for free. And when they are, most will be clueless on where to find, how to install and/or how to maintain it.
Agreed, finding, installing and maintaining a software is a service in the end. But hey… marketing is about selling more for more. And if you need an argument to charge the something extra, try: "Using open source software without rewarding the community is akin to listening to music without rewarding the artist." Or: "The reciprocal win/win relationship that results from donations and contributions ensures open source projects flourish in a highly proactive manner."
As an aside before we move on to the second concern, I suspect many a community driven open source software project could become lucrative by simply selling the binary package — or the zip archive — for a dollar and leaving the source code available for download at no charge. Obviously, users who know how to locate, download and compile source code are clueful enough to be potential contributors. And those who don't can spare a dollar.
That said, simply charging an initial fee for a software is nowhere near sufficient. You need a regular, recurring stream of money in order to focus participatory contributions and unleash the potential in open source software.
Collaborative code repositories, collaborative bug reporting tools, and collaborative task assignment tools I looked at to date suck, and are not appropriate for community driven software development. Not so much because they are featureless — too many features is more likely. More simply, each and every one is missing the most basic of all features — the one that could make projects goal driven and focused, i.e. an easily accessible "add to the bounty" button.
Assume you're a user and you're confronted with a pesky bug. Odds are strong you'll seek to report it. And given an opportunity just there, odds are you won't mind donating a dollar or euro as an incentive to solve it quickly. After all, you need that bug solved asap and such a small amount will hardly make any difference to you.
To the software developer who lives in a low wage country, however, a $1 bounty for a bug correction or a $10 bounty for a feature request can make the difference between getting involved or not. What more, collecting bounties for duplicate and related bugs is an excellent way to get the latter involved in the software's design, in project management and in quality assurance. Now everyone has an incentive to focus on the only thing that really counts — meeting the end user's expectations.
In the end, I think the two combined can work out remarkably. I've always found it amazing that closed source solutions manage to strive by building solutions ground up in an environment where you can have an army of low wage coders build on top of freely available solutions. The latter results in production costs that are orders of magnitude lower than the first.
Properly sold and organized, free software can and should stampede closed source software. Just a thought.