What drives Open Source?
This article is intended to be a continuation of Modern Thoughts on Open Source. Although this article is totally independent, I’ve used the idea of “open source as an infrastructure” heavily.
Everyone understands how Microsoft makes money, but very few understand why they’re getting a wonderful operating system like Ubuntu free of cost. I’ve tried to explain it here.
The problem with opensource software is simple. The “vegetable vendor” model that most closed-source software uses fails with opensource. Take the most popular and simplest example: RedHat. It essentially creates two operating systems from the same codebase: RHEL and Fedora. They sell support for RHEL to corporates, while giving away Fedora to the community, and sponsoring its development. Make no mistake: RHEL is opensource as well, but it has no community like Fedora does. RedHat decides what to go into RHEL, and they build it themselves. Anyone else is free to build it for themselves ofcourse, but they don’t support those builds [1].
Why bother with Fedora at all? Simple. The first thing a RedHat service engineer does when he gets a complaint from a customer: attempt to replicate the bug on Fedora. If the bug’s fixed in Fedora, fixing it in RHEL is as simple as backporting the changes. If it isn’t, they’ll file a bug in Fedora. Depending on the situation, either they’ll get the bug fixed free-of-cost by the community, or will have to fix it themselves. In other words, they’re just getting code from the community free of cost by maintaining Fedora. Then why not give Fedora to the customers? Because bleeding-edge development takes place on it, and stuff often tends to break and get fixed at a later date [2]: RedHat cannot control what gets committed to Fedora, but they will make sure that only mature features get into RHEL. This service model not only applies to complete distributions, but to individual software packages as well- PostgreSQL, MySQL, Django are just a few examples.
So finally, who writes Fedora? The Fedora Board consists of nine members: five of whom are RedHat employees and four of whom are community members [3]. A lot of mainstream opensource software has a similar distribution of paid/ community developers.
Another famous model is the dual-licensing model followed by MySQL AB (now acquired by Sun). They give away MySQL community edition for free, but their enterprise edition is proprietary [4]. The advantage of having these two editions is similar to the one RedHat gains from having RHEL and Fedora. A similar approach is followed by OpenOffice.org: Their proprietary product that earns them revenue is called StarOffice. Advertising is yet another way: Google pays Mozilla for example.
So, the final question remains: apart from the corporates, who is this “community” that writes the code that end-users get free of cost? Most free software projects started out as “pet projects” with little monetary incentive. The Linux kernel was written by a student as a personal project, and several parts of the GNU operating system was written by Stallman in an attempt to create a free operating system- both were individuals who weren’t concentrating on revenue at that time. Things have changed a LOT since then. While there are still many tiny pet projects that are developed by a few people for little/ no monetary incentive, majority of the contribution to mainstream software such as Linux is from people with monetary incentive. The corporates these people work for benefit either directly or indirectly from that opensource project. Corporates that provide support for these opensource projects, that build their products on top of these opensource products, and those that simply use these products in their everyday work. Simple example: Google finds a bug in Chrome, and finds out that the underlying reason is WebKit. After fixing WebKit, getting that fix merged into upstream will benefit them, because they’re not the only people developing it. Same reason Google will contribute to SSH: They’re using it, and they’re not the only ones developing it.
Even non-monetary incentive doesn’t mean no incentive. Contributing to opensource is a great way to secure one’s future. All the work is out there in the public for everyone to see, and you don’t have to explain the work you did behind the closed doors of a large corporation in flowery language. Code talks. Everything else is CV-noise.
The whole model is sustainable in my opinion. A large corporate uses several bits and pieces of opensource software to create a product. They create an opensource project to drive it, and appoint some developers to head the project. I’ve already discussed how they’ll make money to drive it. Students and other prospective employees start contributing to the project for no monetary incentive, with the intention of rising higher in the project’s hierarchy. They’re essentially making themselves employable by the company- once the company recognizes some brilliant developers, it starts paying them and giving them specific tasks. An additional bonus kicks in when other companies also become interested in the project and start paying more developers to develop it. There’s always some ratio of developers working for monetary benefit to those working their way up.
Tags: opensource
January 5th, 2010 at 2:01 am
Higly interesting read.
What I comprehend is the duality of this business model:
* a company C issues software S1 that is free, community-driven further development
* company C also issues software S2 that is paid, corporate-driven development
* S1 and S2 are very much related
Now my question is: how can a startup SU that needs new software to be written, use this model?
* if SU lacks a product to build upon
* if SU lacks a developer fanbase to build upon
* if SU is a very small operation that needs to earn money (unlike Linus Th., who from your story had some time to work on free code)
I would love some clarification on this point, guys!
January 5th, 2010 at 8:34 am
Some points to add to your post:
1) Red Hat does employ a lot of guys to specifically work on Fedora and upstream. So the code they get is really not free, they invest significant money into it.
2) Canonical is yet to make any money at all from Ubuntu
3) A large number of the regular contributors to FOSS are generally college students or freelancers who sell support for that particular software. The ad hoc contributors are generally unable to devote enough time
4) Microsoft sells software. FOSS companies sell support/services for software. Dual licensing is an ugly attempt at trying to sell software in the FOSS scenario. It does not quite work at all, which is why you see some companies actually waking up to that fact and releasing their software as free software, while selling support for it.
January 5th, 2010 at 9:54 am
I was really hoping for more than a single paragraph saying “open source is sustainable.”
The question is not: “Can open source progress?” it’s “Can open source progress, and progress faster than closed-source software companies?”
Claiming that either (i) companies who benefit indirectly from open source will fund development, or (ii) young coders looking to make a name for themselves will volunteer code, fails to address that question.
A key issue is the speed of development, and how much money people are willing to pay to have new features. If one assumes that closed source development can “innovate” faster, but open source can do so cheaper, then open source becomes predominant in “old” markets (e.g. OSes), but closed source dominates in new markets.
It also fails to address the use of open source as a competitive weapon.
Another issue is that if development is funded by companies whose interest is indirect (that is, open source is a loss-leader for later sales), those funds are directed towards making their money-making projects more attractive. The direction of development – what features are prioritized – changes.
There are good explanations for open source, and how it can succeed – but I don’t think you’ve managed to make your point in this post. It’s particularly ineffective since you cite Red Hat – which has yet to make money. At the end of 2009, if you sum the net income since its inception, Red Hat has made -$90.1 million. That is hardly compelling.
January 5th, 2010 at 5:18 pm
@Ton I don’t have a perfect answer to this question, but I’ll try to address it to the best of my ability. My explanation is specific to startup SU, and not a general startup. It depends on what the SU is trying to sell, and its USP. If it wants to primarily create a service like Ubuntu One, then there’s no point keeping the client closed-source anyway. Its USP is the technical expertise the team has in managing large server farms, and nobody can take that away from them by reading the client’s source code. On the other hand, if SU’s USP is its product unique design and engineering, then I believe that it shouldn’t go opensource initially. After it considerable user base, it’ll probably gain by opening out the “infrastructure” parts. Example: the browser engine of a web browser.
@Siddhesh Thank you for those points. Yes, a large number of Fedora developers are RedHat employees- the exact figure is probably available on that Wiki. Are you sure that dual-licensing doesn’t work though? Can you point me to some more literature on this?
@Michael Thank you for your elaborate comment. Your criticism is welcome.
Can open source progress, and progress faster than closed-source software companies?
I tend not to think of closed-source versus open-source as a competition. A significant number of closed-source software today uses several opensource software components. It’s like a happy co-existence. I believe that opensource software cannot exist without closed-source software, and that opensource software benefits everyone, especially large corporations who have access to this fantastic infrastructure to build/ deploy their revenue-generating products.
[...] open source becomes predominant in “old” markets (e.g. OSes), but closed source dominates in new markets
I’d word it differently. See this comment on HN and this article on opensource.
It also fails to address the use of open source as a competitive weapon.
Yes. I’ve not included that in the article.
Another issue is that if development is funded by companies whose interest is indirect [...]
It’s not that simple. Every project has a complex hierarchy, with several influential people on top. It’s not that easy for a company to change the direction of the project. Ofcourse, some opensource projects do fail because they choose to be funded by the wrong companies, and eventually lose track/ focus of what they were doing.
There are good explanations for open source, and how it can succeed
Could you point me to a few?
It’s particularly ineffective since you cite Red Hat
Right. RedHat might not be the best example to cite. I picked it because it’s been around for some time, it’s popular, and because its business model is well-documented.
January 5th, 2010 at 8:34 pm
@Siddhesh
“2) Canonical is yet to make any money at all from Ubuntu”
Correct me if I am wrong, but I read somewhere that Canonical does make money from Ubuntu. It is just that the money they made is just a fraction of what they invested.
Probably it would be correct to say ” Canonical is yet to make any profit from Ubuntu”
January 16th, 2010 at 4:11 pm
@artagnon great articles, this one brings yet more clarity on what we think about Open Source.
@Siddhesh
Canonical does make money by providing support for their products. I think they’ve been doing it since long time but haven’t heard any great success stories in terms of profits/market share -
http://www.ubuntu.com/cloud/support
http://www.ubuntu.com/support/services
http://one.ubuntu.com/
January 22nd, 2010 at 8:37 pm
Very well written. At least, enlightening enough for me.
But even I would like to know from Siddhesh why does he think that dual license is a bad idea? If he cares to explain that, I think it’ll probably help me in my next project.