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.
This answer summarises many of the answers to the following questions, along with some additional research and opinion.
Open source [3] 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 [4]), or philosophical reasons [5], normally based around the notion of free software [6], either the copyleft [7] approach advocated by Richard Stallman [8], or the more permissive approach of the BSD licenses [9].
This can happen in several ways.
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.
A powerful approach is to offer software under two alternative licenses [31], 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 [32] and Open Office [33], as well as to small one-off projects [34].
Open-source work can provide a way to gain valuable community visibility.
Finally, income can be derived through auxiliary channels such as advertising [38] (as Stackoverflow [39] does), donations [40], or through the use of nagware techniques [41] 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 [42] products.
[1] http://stackoverflow.com/questions/114765/open-source-balancing-altruism-and-making-a-wageBecause 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.
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.
Most of the time, businesses make money using the beekeeper model [1]. 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 [2] 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.
[1] http://wiki.pentaho.com/display/BEEKEEPER/3.+The+Beekeeper+ModelIt 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.
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.
there are quite a few different ways
and then the biggest ones I think are extending their knowledge and getting love from users of their products.
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.
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.
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.
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).
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.
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.
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 [1] 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.
[1] http://www.scheme.com/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.
yes, they can by charging for support.
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 [1]
[1] http://wso2.com/You can do this a number of ways. Right now the
freemium
[1] 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
[2]
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 [1].
[1] http://discuss.fogcreek.com/askjoel/default.asp?cmd=show&ixPost=1844Nowadays, 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.
By it's 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.