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.

Why would someone use his own time to develop an open-source project for free and without compensation?

share|improve this question
10  
Oh really, do we have to discuss this topic again and again? Even MS creates a few OpenSource programs nowadays. –  user281377 Dec 1 '10 at 12:52
18  
@ammoQ: Although you're right, this is not particularly helpful. –  back2dos Dec 1 '10 at 12:59
4  
Well... I don't code for free, yet I spend 37.8 hours a week sitting at a desk writing software that is released under the GPL. Sometimes software is created to fulfill a business or operational need. The software itself has no commercial value to a consumer while still providing value to the business unit. People who don't use other products from the company won't be interested in the open-source application that won't gain them anything - and even if they did, who cares? –  TZHX Dec 1 '10 at 13:26
21  
Your unspoken fundamental assumption, that the only valid motivation for human behavior is the profit motive, is dehumanizing, offensive and, most importantly, demonstrably false. See youtube.com/watch?v=u6XAPnuFjJc for some actual research on the subject. –  Mason Wheeler Dec 1 '10 at 20:04
10  
Why do people sit on StackExchange and help people without getting paid? –  kba Nov 27 '11 at 2:47
show 6 more comments

closed as not constructive by Jarrod Roberson, gnat, ChrisF Apr 12 '12 at 20:46

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

14 Answers

up vote 45 down vote accepted

For small projects, reasons might be "hobby", "getting some experience", "fame", "joy" etc. but that's not how the big open source projects like Mozilla, OpenOffice, Linux work.

Why did Sun buy StarDivision and made StarOffice an open source program (called OpenOffice.org)? Why does Mozilla create a top-notch browser and give it away as open source? Why are there people creating Linux, writing drivers and whatnot, and make it available to everyone for free? Why does Microsoft create opensource drivers for Linux so it can run better in MS's virtualisation?

Because it makes some business sense for them. They make money that way, or at least plan to.

In some cases, the dominance of MS's products, i.e. Windows, Office, Internet Explorer, was the reason the create a competing product, so it would be harder for MS to use their desktop dominance to conquer other domains, i.e. servers, internet services, too. This explains, to some extend, OpenOffice.org and Mozilla.

In other cases, open source software is meant to drive sales of hardware, other software or services. Open Source drivers obviously help to sell hardware components to Linux users. RedHat sells support for their Linux distro, and they sell the fact that their Linux is genuine RedHat. Other products, e.g. Oracle, are certified for use on Redhat, but not on CentOS, even though it probably runs just-as-well. Server hardware is certified for Redhat, even though other linux distros probably run just-as-well. Big-money-clients don't care about the price, they want the certificate.

Some companies, e.g. Google, sponsor many open source projects, because it helps their business. They don't do it for hedonism. They want a free internet, a pervasive internet, a widespread internet, where people use Google's services so Google generates revenue.

share|improve this answer
4  
Somewhat sceptical about Google wanting a "free internet". They want a widely and frequently used internet which will lead to more opportunities and ultimately profit for them. Free is something more debatable. +1 all the same for a good answer. –  Jon Hopkins Dec 1 '10 at 13:29
9  
Jon: free as in "not controlled by a single vendor" (arguably except them) –  user281377 Dec 1 '10 at 13:40
1  
I think this not irrelevant to the subject: joelonsoftware.com/articles/StrategyLetterV.html –  back2dos Dec 1 '10 at 17:40
    
back2dos: thanks for the link; I've read it before, but could not remember where and when. –  user281377 Dec 1 '10 at 22:32
    
Google sponsor open source projects like Chrome because it gets them a relatively cheap new product which is competitive with the market leaders in terms of features and performance yet they can augment it with just enough control mechanisms that it generates them a ton more revenue - the default Search provider comes to mind. Sounds cynical, but why release Chrome when other Webkit-based browsers are already (en.wikipedia.org/wiki/…). –  JBRWilkinson Jan 25 '11 at 22:22
show 3 more comments

Why does everything have to be about money? How do you think wikipedia works? Nobody gets paid to put content on the Wikipedia, yet it is arguable the best encyclopaedia around.

edit:

Let's talk money.

Open source projects, as any projects, are written out of neccessity. You have a problem X and you write library Y or application Z to solve it, because

  • There are not tools, that solve it or
  • They are not good enough or
  • They are not worth the money (writing your own tool probably "costs" more, but in the end you have exactly what you want and you can modify it as you want, so the cost amortized quickly).

So now you spent a few evenings and weekends (and/or paid time) writing the next hot thing until you reach a point, where the baby starts walking. You now have to chose between:

  • Commercial distribution: this involves marketing, legal stuff, customer support, doing all the fixes yourself, getting tons of incredibly stupid feature requests and less than useless feedback. In the end you get what's left of the money once all the parasites get their piece of the cake. And probably noone will like your product because it costs way too much.
  • Open source distribution: this involves ... uhm ... pushing the code to a public repository and making an announcement or two on relevant mailing lists. You will get acknowledgement or even some fame. You will get a user base, that provides constructive feedback, helpful bugreports and possibly even patches. You get some donations or get invited to some conferences or get paid to implement features a or b. And you produced a lot of value, albeit nobody paid for anything. And the next time you or your company needs something, chances are good, you'll get it and you'll get it for free.

Open source works, because it is a community. Because it is mutual. You do not get money by writing open source code. You get money by consuming open source code. So why do you write open source code? To give something back.

share|improve this answer
1  
"Why does everything have to be about money?" of course not, but programmimg is something people usually like to be paid to do it. (even if you like it, I'm a programmer and love programming but stil I wouldn't do it for free) –  Diego Dec 1 '10 at 13:03
    
@Diego: Compiling encyclopaediae is also something people usually get paid to do. BTW: updated my post. –  back2dos Dec 1 '10 at 13:23
11  
@Diego: forgive my naivety but how can you say you love it if you won't do it for love alone? –  Matt Ellen Dec 1 '10 at 13:23
3  
@Matt: love is never for love alone, that's a misconception. –  user281377 Dec 1 '10 at 13:26
1  
+1 for "it is mutual" –  user281377 Dec 1 '10 at 13:27
show 7 more comments

You may find yourself in the following position:

  • you need good software to do things for you
  • you find you need much more control over how the software works than the configuration options of available offerings provide
  • you have access to source code for software that almost meets your needs, and the expertise to modify it to exert the control you need
  • you only need to make small modifications for your purposes, but you want to benefit from many more modifications made by others, and the development future of the software looks bright
  • your modifications are not isolated and substantial enough to consider them to be assets worth protecting or selling, or the added overhead in doing so would outweigh the benefits
  • you know your modifications can benefit many others with needs similar to yours; getting them incorporated into the main development line will save you effort, compared to maintaining your own forked copy

In this situation, participating in an open-source project is a perfectly sensible business decision.

It can be pretty good advertising, too.

share|improve this answer
add comment

One more than one occasion, I've contributed a patch to an open source project simply because I wanted to make sure that feature/fix would be included in future versions.

It doesn't seem like a stretch that someone would release something as open source simply because it offered the possibility that others would use it and keep it current.

I worked with one person who wrote code that (IIRC) validated CUSIPs. He released it on the net. Years later he downloaded a CUSIP lib for a different system. He was surprised to see a reference to the code he wrote years before.

share|improve this answer
add comment

This question is not specific to open source, because you can write code, for free, and never release it to the public (although that would be rare because of all the known benefits of sharing code).

The real question is, why do anything for free? The answer is, because it makes you happy.

Personally, I love to learn, and I learn more working on open source than working on my paying job. Because learning improves my skills it also helps me to get better paying jobs.

share|improve this answer
add comment

The outfit I work for, started with a public domain code (written by the business owner) [Open source was years from being invented]. His original business model was to be a consultant on using it (use is not straightforward, and many hundreds of people make a living consulting). Of course the demands for feature enhancements were so great it became a proprietary commercial code(s)*. But, still most of the salaries earned are in rapidly diminishing numbers up the scale: (1) Users doing their jobs, (2) Consultants to group (1), finally (3) Developers/testers etc.

I use the plural, because several other proprietary codes sprang from the same public domain source code release.

share|improve this answer
add comment

You can release it under a restrictive Free licence, such as the GNU AGPL, and then charge for exceptions.

share|improve this answer
    
That's a horrible idea. –  rightfold Nov 27 '11 at 11:22
    
@WTP. It's the business model of MySQL and x264, among others (though neither of them use the GNU AGPL, as far as I know). –  TRiG Nov 28 '11 at 15:36
add comment

There's a variety of reasons.

Some people get paid for writing it, because their employer thinks it worthwhile (and there's plenty of potential reasons for that). Some people start companies based on F/OSS because they can make money from it.

Some people use F/OSS and want to give back.

Some people treat it as a reputation game, like academic research or answering questions here.

Some people want a certain piece of software for their own purposes, and just release it because what they want is to use it, and they can sometimes get useful suggestions if other people can use it also.

share|improve this answer
add comment

It's not only for making money but more often for saving money. The vast library of good OSS libraries and tools make it a natural choice.

In same cases (GPL and friends) that means you're legally bound to make the resultant code OSS too. In other cases, it's just a personal choice, but you still get to receive other rewards (mostly some recognition, sometimes the chance of selling support, sometimes (happened to me) a good reference to show to potential employers)

share|improve this answer
add comment

You can support it to get money. If you have a program that is very well thought of and used by the community, say like jboss, you can offer your services and support. People will pay for it.

share|improve this answer
add comment

Besides money, of course there is fame -- and then their is learning how something works by building it and constructing it yourself. Gaining valuable and marketable experience outside your normal work life. I think Ayende is a good example of this.

As an aside -- generally I've found some of the best, most intuitive projects and frameworks I've worked with to be open source -- I think that people who are truly passionate enough to spend their free time building a project up from scratch or simply maintaining it produce a better product then people who are just grouped together from 9-5.

share|improve this answer
add comment

There are several reasons to develop open source applications. In general, the more foundational the need is the better suited to open source it is. For example, ASP.NET MVC, Ruby on Rails, Django, PHP, and other web frameworks are all open source. That's right, even Microsoft has a fairly well known open source project. The need for a well organized web framework that lets you focus on building a web application is larger than the specific web application you are building.

Many people (myself included) contribute to open source because we use these frameworks in our day job. It's self preservation in a sense. If I don't have to keep reinventing the wheel just because I am at a new company, why should I?

As to making money with open source, that is a tricky subject. Most open source licenses allow you to sell your software. The specific license governs whether you need to share your modifications (BSD/ASL style licenses do not while GPL style licenses do in most cases), or provide attribution ot the original project.

The cases that I see work most often are:

  • Selling support. MySQL, Spring, and a few others follow this model and do well with it.
  • Selling convenience. RedHat, SuSE, and other Linux distros package a group of applications together for the user's convenience.
  • Selling appliances. In short this is the way companies like Google, Nokia, Linksys, etc. make money packaging proprietary and open source products together and keeping them safe. It's probably the most lucrative option.
  • Selling T-Shirts/Mugs/etc. Doesn't bring in a whole lot, but better than nothing.

Bottom line is that the source code may be open, but there are always people who need more than the raw code. I'm sure there are more ways to make money off of open source, you just have to be creative.

share|improve this answer
add comment

Monetary compensation isn't the only possible compensation. Fame (although mostly to a limited circle) is another. The joys of showing off what you've done is yet another.

Me, I mostly do it because I have an urge to write software and if it happens to help someone else, everyone wins.

share|improve this answer
    
And it helps you in getting a job. –  rightfold Nov 27 '11 at 11:20
add comment

This is a hobby for some people; believe it or not.

Gillette will be happy to give you a free razor and sell you the blades.

Some people make money in other ways and want to give back to the community. I'm sure Linus Torvalds has made plenty of money 'off' of Linux without actually selling the code and probably turns money away.

Not all open source software was intended or designed for any user to just download, install and use, so you may end up spending more of your time depending on skill level and most people value their time.

share|improve this answer
6  
+1 For the Gillette metaphor –  Tim Post Dec 1 '10 at 14:14
    
You mean a free shave handle. The razor is the blade. –  Joe Z. Dec 28 '12 at 22:04
    
Its called bait and hook business model. Same can be said about printers and cartridges en.wikipedia.org/wiki/Razor_and_blades_business_model –  Deepak Mishra Nov 13 '13 at 3:01
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.