Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm currently a student (Applied Information Technology) and we do most of our programming in C# and Java. I was wondering how can I as a developer, make money with open source. I know there is the story of give support, or provide services, but I'm not a sysadmin and I don't like sysadmin work. Actually I would love to get my hands on some C and C++ in the future and do some low level development.

So my actual question is: Is there money to be made with the development of Open Source software, and how?

Edit: Just pointing out that starting my own Open Source project is not a requirement.

share|improve this question
show 4 more comments

migrated from stackoverflow.com Aug 12 '11 at 18:59

This question came from our site for professional and enthusiast programmers.

20 Answers

up vote 97 down vote accepted

This answer summarises many of the answers to the following questions, along with some additional research and opinion.

Synopsis

Open source can be a viable primary or auxiliary business model, both directly through specific project work and indirectly through the acquisition of skills, experience and reputation. There may also be additional, motivations; the satisfaction of producing software that is useful to others, the "scratching of one's personal itch" (the first step towards any good piece of open source software, according to Eric S. Raymond), or philosophical reasons, normally based around the notion of free software, either the copyleft approach advocated by Richard Stallman, or the more permissive approach of the BSD licenses.

Ways to earn money through Open Source

1. Sponsorship by a company

This can happen in several ways.

  • Permanent job to continue work on high-profile project. This is probably the rarest case. If you are a senior member of a major open source project, someone like Linus Torvalds, Guido van Rossum or Theo de Raadt, then you will probably be able to continue working on your project while being financially supported by a major company such as Google or IBM. Although this mode of support is relatively uncommon, you don't necessarily have to be an open source superstar to secure this type of funding; many Linux kernel developers are partially or wholly funded by companies like Red Hat.
  • Paid for specific features or extensions. Some companies offer bounties to have specific features implemented in open source software that they use for business functions. Often there is no need for the feature to remain closed source, so significant code is contributed back to the community. This has been described as the beekeeper model of open source development. In some cases the additional features are required to remain proprietary, but are based upon an open source codebase. In both cases, open source expertise is a clear advantage for a developer.
  • Your day job code can be open-sourced. A related case is where aspects of the code you write for a company in the course of your day-to-day job may be open-sourced without harm to the company. The code may or may not be based on an existing FOSS project. Generically useful tools and libraries may often be released in this way, and anecdotal evidence suggests such projects can often accelerate once they become volunteer-driven.

2. Add value to existing projects

An individual or company can position themselves as a primary provider that adds value to an existing open-source project or projects. There are many examples of companies who provide a service by packaging, layering, combining or extending existing projects. They broadly fall into two categories.

  • Support. Enthought adds value by packaging a custom Python distribution focusing on scientific libraries. Redhat and the other Linux distributions add value by collating and testing many disparate open source projects, and providing easy-to-use install and upgrade mechanisms. These companies sell support services in the same way as many proprietary providers do.
  • Freemium model. Under this model, a basic version of the software or service is free; additional 'premium' features normally cost extra. Sleepycat software provided extra features for the Berkeley DB under a proprietary license. Cedega provides a reimplementation of the Windows API under Linux, released as a mixture of free and proprietary code. This model need not be open source; Gmail for organizations is one example of a service that offers both free (as in beer) and premium options.

3. Offer code under a dual-licensing model

A powerful approach is to offer software under two alternative licenses, a copyleft license requiring modifications to be released back to the community if the software is distributed, and a commercial license allowing the use of the software without open-source restrictions. This approach has been successfully applied by large projects such as Qt and Open Office, as well as to small one-off projects.

4. Consult

Open-source work can provide a way to gain valuable community visibility.

  • Showcasing of abilities. Being able to verify a developer's work and competence by looking at open source projects they have been involved in is a powerful draw for prospective employers.
  • Reputation building. Having a high profile reputation in an open source community can lead to speaking engagements, training requests or book writing offers based on your expertise.
  • Being the expert. Being a significant player in a technology that companies need, means being in demand for custom consulting, support and training in that technology. This can lead to the creation of a specific job niche in your area of expertise.

5. Auxiliary channels

Finally, income can be derived through auxiliary channels such as advertising (as Stackoverflow does), donations, or through the use of nagware techniques in the software itself that aim to annoy a user into providing financial contributions to the author. These techniques are not specific to Open Source development models. For example, they are often used by non-free shareware products.

share|improve this answer
add comment

Because you are the creator of this system, you are the 'ultimate expert'. For-profit companies that use or wish to use your software may bring you in for some consulting work. Also, you would qualify to speak at conventions which i hear is well paid.

Contributing code to an existing project is also a good way to get your name out there. The more you contribute, the more cred' you have when looking for contract work.

share|improve this answer
add comment

Here's an example.

If you hang around in the Qmail community, you'll find there's a few people who know Qmail inside out. Just a couple of them become the go-to guys if you want an extension to Qmail's functionality. They get contracting jobs which involve them sitting at home, writing a Qmail extension, and getting paid for it.

If that sounds like a lifestyle you could go for, try it - find a niche, and take contract jobs. You might offer different terms to your clients, depending on whether they wanted to own the code you produce closed-source, or whether you release the code as open source, but they get to use it.

Think of it this way - there's lots of situations where the client simply wants this code to exist. They don't then care whether or not they have exclusive access to it.

share|improve this answer
show 1 more comment

In my experience, writing OSS doesn't give you any money; but it does makes you a lot more valuable, and therefore employable. Both because of the highly-tuned abilities you get from practice, and because when you're able to use existing OSS, your familiarity with the ecosystem lets you waste far less time evaluating what's already there to avoid rewriting the wheel.

share|improve this answer
add comment

Most of the time, businesses make money using the beekeeper model. Essentially, your open source contributors get to use your latest and greatest for free while your customers get a reliable, mature product. Red Hat, Novell, and Sun all use variations of this model.

Another option is consulting and training. If you have a lot of experience using a certain product (or better yet, you invented it), then people may be willing to pay you money to teach them to use it. This is the model that Canonical uses. This doesn't necessarily mean that you have to do sysadmin type work unless that's your thing. After all, programmers, end users, and executives need training too.

Thirdly, as a student, you should seriously consider Google Summer of Code next summer.

Overall, I'd say that open source contributions are worth it whether or not you directly make money off of them. Although, I'm afraid that you probably won't realize the benefits in the short term.

share|improve this answer
add comment

It really depends. Many just do open source development as a hobby, and have a day job (which is often, though not always, software development as well).

Some are paid by companies which have an interest in the open source project. LWN.net posted an article about who pays Linux kernel devs, for example:

http://lwn.net/Articles/222773/

Turns out many companies fund Linux kernel development, and not only Linux distributors.

Some developers also run a consulting business, and use software development to support their main work, or as a showcase.

share|improve this answer
add comment

there are quite a few different ways

  • Funding by another company (take for instance google which pays Guido van Rossum to work on Python half of his time)
  • Selling support services
  • Selling consulting services
  • Building a profile for yourself through opensource hoping it leads to other things like speaking, book authoring, getting a good paid job
  • Spinning of a commercial version of the product for "enterprise" customers for instance

and then the biggest ones I think are extending their knowledge and getting love from users of their products.

share|improve this answer
add comment

I've made money inadvertently through open source software, as has a friend. We had similar cases, but I'll only talk about my own: I wrote an open source VCDiff decoder, basically because the spec looked nice. (Long story, but I was originally going to write it on company time, but ended up doing it on a Friday night instead.)

A few years later, I was approached by a company which wanted to use it in a commercial package, but without the required attribution. They were happy to pay a licence fee for this, and presented me with an extremely reasonable non-exclusive licence. We did the deal, and both sides were happy.

The aim was never to make money - that just happened as a side-effect of producing something that another party wanted, basically.

share|improve this answer
3  
I think you've hit on an important point: you don't go into open source for money. –  Bernard Oct 12 '08 at 22:29
show 3 more comments


Make a website about an opensource product (your application, a forum, a support site, etc.), and place some ads in there.

That would do the trick.

share|improve this answer
2  
Sure, you could make some money, but you couldn't make a living off of ads. –  Zifre Aug 27 '09 at 14:31
show 1 more comment

I think a common scenario is that they have paid jobs as well. A lot of open source work derives from developers' spare time, and from elements of their paid work.

An example might be creating a solution to solve a specific problem at work, and open sourcing the solution to help other developers faced with a similar scenario.

share|improve this answer
add comment

Just developing an open source software project probably isn't going to make you much money. Providing premium support, customizations, etc. can. I make a pretty good chunk of change on the side by developing extensions and custom builds of Firefox, Thunderbird, Red5, and a few other open source projects. A large part of what I create is also provided back to the open source community.

There is also the possibility of a dual-licensing system. For instance, you can release the software under a GPL type license, and also under a commercial license where somebody who purchases a commercial license is allowed to keep any modifications proprietary and to sell it without releasing the source code.

share|improve this answer
add comment

If you actually want to make money by making your own open source project, I think it is a pretty long shot. On the other hand, there are many well paid jobs that require work with Open source technologies or developing open source software in companies like Red Hat, Sun, IBM, even Microsoft.

share|improve this answer
add comment

The answer to your actual question

is there money to be made with the development of Open Source software, and how?

Is yes, and there are different ways. If you just want to be a developer, i.e. not starting your own business, the best thing to start with is to participate to the project(s) you like. Then, you might find opportunities like this: http://webapps.ubuntu.com/employment/canonical_GDOS/ (there are many of those in different fields, MySQL, just to mention another "big" name).

Then, create your profile on LinkedIn and join the OSS groups relevant to your skills and/or interests.

Last, but not least, join a local group (e.g. LUG, JUG) and read the mailing list. Often in those lists many job offerings appear (unfortunately I discovered only after I get the job).

share|improve this answer
add comment

Some open source software companies provides services and earn money. (Like application hosting etc) In most cases they provides some customizations according to the customer's requirement and provides support and maintenance over time.

I don't think the "Donations" can make a big change but there is some impact from them as well.

This is one good example for a Sri Lankan company that is based on opensource products.

WSO2

share|improve this answer
show 1 more comment

There are two successful, profitable open source companies that I know reasonably well:

  • SleepyCat Software, until they were bought by Oracle, made money by supporting and enhancing Berkeley DB. Although one of the founders had a day job, the other did not, and they had a dozen employees.

  • Chez Scheme makes money by adding enhancements to their compiler and by selling native-code versions of their compiler. Typical enhancements might include a new back end; a more ambitious recent enhancement was a native threads package. The founder (Kent Dybvig) has a day job; I don't know how many employees he has. Chez is unusual in that the interpreter is open source but the compiler is not.

Cygnus and Red Hat both sell "support" as well as specialized versions of their software, but the software is also given away. I don't really understand this business model.

What I take away from these examples is that if your software is outstanding in its class, people will pay you to help them use your stuff to solve problems. So it's almost like consultancy.

share|improve this answer
show 1 more comment

By its nature, you can't generally make money from the code directly - since it's open. You could dual-license, but that can put the OSS community off, too.

Possibly the easiest way is to work for a company which produces open source software. You get paid for writing code, and the company makes money from support or whatever, but you don't have to be involved with that side of things directly.

Or you can write OSS to build a rep and hopefully get contract work / full-time work on the back of it.

share|improve this answer
show 2 more comments

You can do this a number of ways. Right now the freemium model is popular.
Alternatively as others have posted open source work is sidelined. The model I use is to use open source at my place of employment and contribute my contributions back to the mainline. You need to have buy-in from management but it works. Also remember in the words of Stallman Free as in Freedom

share|improve this answer
add comment

I think its an accepted fact by now that software, once installed becomes worth more than its price because it has now become "already there". I am speaking of more enterprise-style apps.

A lot of companies charge you when you purchase the software, then keep their foot in your door with maintenance contracts, winding up making more $$ from you that if you had bought it 7 times over. I know that is certainly the case where I work with some proprietary software that is >30 years old!

It just so happens that this software is free to install (think of it as the "free drugs at first" business model). The challenge of course is picking a project that is well maintained and has a good support community online. But then again that is the same with non-free software too.

Migrating onto and off of Open source tends to be a lot easier than proprietary apps because they tend to support open formats more often. Proprietary apps will usually "give away" the service of migrating onto them, and other services to make it easier for you to stay with them.

O/S apps tend to have a higher learning curve at first which pretty much necessitates maintenance contracts, so there is plenty of opportunities to make $$

In my opinion, neither business model is better, just different. The proprietary model just happens to be more widespread.

share|improve this answer
add comment

Nowadays, some (a lot ?) of companies pay developper to contribute to opensource software as their business is based on opensource software or derived from opensource software.

share|improve this answer
add comment

I see two questions here:

1) How do developers make money.

Most developers don't do it for the money.The reasons may be many but if we narrow them down, it comes down to 1) Scratching an itch 2)For gaining credibility 3)To enhance knowledge in that particular language/domain.

2)How do business' make money.

Usually from support, training ,certification and enhancement. But then the question arises : if your product is really good, then it won't need much support. So it has to be what Joel call's Consultingware.

share|improve this answer
add comment

protected by maple_shaft Nov 27 '13 at 21:38

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?