On Passion, Money and Open Source
Recently I had a discussion sparked by my article on open source licenses, published here in 2005. In a blog post accompanying the article I was wondering if it is possible to build a sustainable business model upon open source software (OSS). A lot has changed during the last two years and the topic of making money from open source doesn’t seem to be so hot anymore.
As everybody out there seems to be concerned with startups and web-the-ever-inflating-number-point-oooh, I will gladly come back to more eternal topics like money and passion.
When I browsed the presentations from OSCON 2007, probably the biggest conference devoted to OSS, there was essentially no mention of generating revenue from the open software itself. The speakers were concerned with practical applications of the software. Even less technologically focused presentations covered topics like making the most from the community potential or handling difficult people in a team.
To the awe of some, there was even a talk titled “Open Source at Microsoft”. The same Microsoft which has a long tradition of condemning open source, and whose CEO once proclaimed Linux as a cancer. The speaker, Bill Hilf, summarized the efforts within Microsoft to get closer to the open source community. He announced that MS has started the process of obtaining Open Source Initiative certification for some of its licenses and opened the website with the meaningful address: microsoft.com/opensource.
So what has changed during recent years? Did somebody discover a wonderfully effective way of earning money from open source software, a way that is appealing even to Microsoft? I don’t think so.
The lucky ones
There are few ways a company can make money from OSS. One is to create a new market around a piece of open source software. A good example is Zend, “the PHP company”. PHP itself is an active, open source project. But Zend has managed to build an apparently profitable business model on top of it. They sell all things PHP: from baseball caps, through training, to commercial development tools and optimizers.
This method is great for established projects with a large user base (or a smaller number of wealthy enterprise users). That way a company can get paid for software development and support, even though its core product is free. Obviously, it can work only if the software is popular enough to have its own market. However, starting a business with this model raises a number of concerns. It won’t work if users can easily find some other free alternative and conveniently switch to it. It won’t work until your product is mature enough for people to start investing their time and money in it. And if the user base is too small, guess what? It won’t work. Such a project can eventually turn out to be a source of revenue, but rather by luck than design.
Another way is to open the underlying code and charge for the services built with that code. This model is successfully employed by 37signals. The company used its own open-sourced Ruby on Rails framework to build web applications such as Basecamp or Highrise. While the framework itself is free, 37signals charges for the use of their applications and keeps their code built upon Rails. The good thing about this model is that you don’t rely financially on the success of your open source code. It’s the application build upon that generates money. If there are other people willing to use and improve the open parts of its code—that’s great. But your bills don’t have to wait until you hit the critical mass of popularity with your open source code. While you need to cross the threshold of popularity before your commercial product becomes profitable, that threshold is certainly lower than the mass necessary to make a living from something which is essentially free.
There are more ways of making money from an open source product. For example Mozilla uses Firefox’s market penetration as a basis for a deal with Google: default searches in Firefox use Google, as described in a deal that turned out to be worth millions of dollars.
More than meets the eye
There is more than quick money to be made when it comes to open source. When a company decides to open some of its code, it can reap other benefits as well.
Firstly, it could be an effective way to outsource some parts of the development efforts. Obviously this is not always the best route, as “effective” doesn’t mean “free”. The costs of maintenance and losing control over the code could outweigh the benefits; however, in some cases it can let developers focus on essential parts of the application and share components, such as an installer, with the open source community.
Some companies have their own core projects, but sponsor development of open source tools or libraries already available. The company then gets better, faster developed tools, and the rest of the world can benefit from it as well. “Rest of the world” includes competitors for that matter, but nothing is perfect in this world.
Finally, going open source is a way to build a community and gain mind share among developers. I think this is the case with Microsoft. Almost every programming geek I know thinks of Microsoft as an Evil Empire ruled by Satan himself (or two, when Steve Ballmer is included). Microsoft used to get away with this, but in the long-term perspective it’s dangerous to ignore geeks. These include the people who are often the greatest programmers, and who will eventually have a huge impact on decision making—even in the largest companies. Having an active, motivated community around the product always pays in the long run.
Some people noted that Microsoft is losing Alpha Geeks; others claim that the company is now irrelevant for the programming crowd. Microsoft seems to notice this, so I think the rumors of its death have been greatly exaggerated. We shall see how it will adapt to the current prevalence of OSS, but I’m sure the people there are too smart to simply give up.
For I don’t care too much for money
With this in mind, I don’t attribute the lack of discussion on open source revenues to the advent of new business models. Open source is here to stay because it benefits programmers from the outset, regardless of whether a company is going to make money from it or not.
Working on an open source project is a great way for a programmer to develop skills and gain experience. There is also a chance to work on something that is far more interesting than ‘monkey-coding’ at a daily job. It can also be a very effective way to gain visibility and, eventually, a better job. Serious involvement in an open source project can open many doors, not only to Googleplex.
I can hardly think of any successful open source project that was started with the idea: “let’s write some code, make it open and earn money from it”. The beginning was rather a matter of solving some problem, learning new technology or simply doing something for fun. When that passion is accompanied by persistence and—very often—pure luck, it is then possible to start thinking about profits.
Open source is not a business plan. You can end up being rich, but you probably won’t if you start a project with this goal in mind.
When you think about success stories then just think RedHat, JBoss (now together), MySQL, interface21 and the list goes on.
I think people somehow settled on few models that seem to work for them (support based, dual licensing, consulting..) and nobody is comming up with anything fresh.
I partialy disagree with the 37signals example. Whatever money they make doing Rails consulting can be attributed to the “open source business”. Web apps they build are as proprietary as anything else.
After all IBM gave away their core platform under Eclipse but nobody is calling their tooling offering (RAD, formely WSAD) “open source business”.
Also the motives for creating projects are not that black&white. While a lot open source businesses grew up from being hobby or a side project, it looks like the most successful and high profile (redhat, jboss, mysql) were purely commercial from the day zero.
So you can became rich if that’s your goal when creating an open source project :)
MySQL was started as a mod to mSQL, created to overcome the limitations of the latter and to have a database cheap and good enough for a specific commercial project.
The same with Red Hat. Its original author wanted to have a unix environment to run his own application. He couldn’t afford unix workstation so he started to hack Linux to suit his needs.
So I’d put these two into “solving a problem” category, even though they were commercialized very soon.
Probably you’re right about JBoos. I don’t know its history very well but from what I was able to find it seems that Marc Fleury was having bigger plans from the beginning. After all, working on open source implementation of the spec targeted at big enterprise businesses turned out to be a good bet. Who knows, maybe JEE guys are more worldly ;).
The niche of enterprise consulting seems to be a bit safer than consumer market but in general it’s tricky to start a business based on a new piece of OSS itself rather by a commercial service (like 37signals) or consultancy for established software.
To add one kid to this block, I would take Atlassian. They actually built their first product – JIRA – developing or contributing in large to several open-source frameworks such as WebWork.
However, it cannot be fully considered as OpenSource-driven business, because they might just not have published those frameworks to the public. They did. Why?
– community is the best beta-tester
– because of various use-cases frameworks became more generic and extensible
– it feels good to contribute to open source
Whatever is your plan, one thing doesn’t change: your product needs to be awesome and unique, in order not to sink in the sea of other mediocre open-source products.