I love open source software. I love the idea of open source software. Involving people in the development process that would not otherwise get the chance. Tapping into talent that would not normally be available to you. Best of all, giving everyone the opportunity to benefit others as they benefit themselves. I’m always interested in how I can benefit the communities that I’m a part of.
The question that I’m asked most often when I talk to people about open source software is “Who pays for all this?” as well as variants like “Then how do they make money?” or “Won’t people eventually stop working for free?” We live in a capitalistic society, and people don’t understand why someone would work for free when they could be making money. In this article, I’m not going to cling to ideals on why doing something for the community shows more worth than your bank account balance, instead I’m going to explain how open source developers (myself included) do in fact make money by developing quality software for free. Hopefully in the process you will find a way to give back to the community and get your piece of the pie.
How can I make money from Open Source Software?
There’s more than one approach to making money from free software. Companies like Trolltech and MySQL AB use a dual-license approach, where they retain ownership of their code and offer it with an open source GPL license and a more traditional license. Why would someone pay for a product they can get for free? The top reason is usually support. Companies, especially the big ones, want to use software that has a company standing behind it. A company they can go to with questions and even hold responsible if something breaks. The second reason, one that is more specific to these companies that use the dual-license approach, is actually the license itself. If a company wants to include the MySQL database into a traditional closed-source project, one they hope to sell, they can’t legally do that with the GPL’d version. Instead they must purchase the alternative license. These “second generation” open source companies are bridging the gap between open and closed source. It’s a fine line to walk, and I’m not saying that either company i mentioned is a shining example of what this kind of company could be, but there is no ignoring the fact that these companies profit from open source software which also benefits the community.
Another way to make some profit from open source can clearly be seen in companies like Zend Technologies. The company was founded by Zeev Suraski and Andi Gutmans, who are very well known for their contributions to the PHP programming language. Zend Technologies develops products relating to the development, deployment and management of business critical PHP based web applications. They have proprietary tools that they sell, such as Zend Platform, Zend Guard, and the amazing Zend Studio. So how do they contribute to open source, and how does it benefit them? Well, their company is built around PHP, an open source language. It’s in their best interest to make sure PHP is the best it can be, and as such they contribute huge amounts of code to the PHP project, in turn helping the PHP community, even those that don’t use their products. They also release things like the Zend Framework, a high quality open source PHP framework, which can drastically reduce project development time, increase portability of code, and ease the process of creating an MVC application in PHP. Again, this helps to increase the number of programmers that use PHP, which increases their customer base. No licensing strings attached, just a mutually beneficial relationship.
Then there are companies like Automattic. Automattic is built around WordPress, an open source project that I happen to be quite interested in, since a decent portion of Xavisys’s work is done on WordPress. They run WordPress.com, but have diversified their income, making money from upgrades, VIP hosting, ads, Akismet licensing, and enterprise services. WordPress.com uses the WordPress software, so when Automattic’s developers commit code to WordPress, it helps their company, but also benefits the rest of us that use WordPress. So why don’t they stop doing this, and keep the code to themselves? Well, because while they help me, I also help them. When I see a problem with WordPress, I submit a patch to fix it. When I see a feature that I would like, I submit the code to add it. In the end, they make my software better, and I make their software better. It’s mutually beneficial. I think a lot of other industries, and even other sections of this industry, should learn to embrace of this kind of symbiotic relationship.
So you see that large companies can turn open source into monetary gain, but what about you? What about the smaller developer? I’d like to respectfully submit my last case study, Xavisys. A company that I happen to know quite well. I don’t help the community for monetary gain, I do it because I think that community is extremely important to the well being of the human race. I think that people who are involved in their community make the world a better place to be, and I want to be one of those people. However, even though it’s not the reason I contribute to the community, I do reap the benefits. One of the difficulties of being a development company is that there is so much competition, it can be hard to be noticed. You might be twice as good as the next guy, but if no one knows about your company and the services it offers, you’re out of luck. Not too long ago, I started releasing all my WordPress plugins into the WordPress.org repository. I gave a bunch of code away for free. The most popular one (WP Google Analytics) has only been up for 19 days, and has been downloaded 2,635 times. It feels good that so many people are benefiting from something I wrote, but how am I benefiting? Well, since I started releasing my plugins, traffic to my site has tripled. I don’t run any ads, so I’m not making anything off the traffic itself, but I’m getting more paid jobs from people who are already confident in my abilities because they use some of my plugins. These people are easier to sell my services to, because they are already convinced that I’m up to the task.
What does this mean? Look for something mutually beneficial. A way that you can help others and in turn they help you. No exploitation, a symbiotic give and take. Now that you know it’s possible, wouldn’t you rather make money that way?