36

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

12
  • 10
    Oh really, do we have to discuss this topic again and again? Even MS creates a few OpenSource programs nowadays.
    – user281377
    Dec 1, 2010 at 12:52
  • 18
    @ammoQ: Although you're right, this is not particularly helpful.
    – back2dos
    Dec 1, 2010 at 12:59
  • 5
    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, 2010 at 13:26
  • 25
    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. Dec 1, 2010 at 20:04
  • 16
    Why do people sit on StackExchange and help people without getting paid?
    – kba
    Nov 27, 2011 at 2:47

14 Answers 14

58

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 altruism. They want a free internet, a pervasive internet, a widespread internet, where people use Google's services so Google generates revenue.

8
  • 5
    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. Dec 1, 2010 at 13:29
  • 13
    Jon: free as in "not controlled by a single vendor" (arguably except them)
    – user281377
    Dec 1, 2010 at 13:40
  • 1
    I think this not irrelevant to the subject: joelonsoftware.com/articles/StrategyLetterV.html
    – back2dos
    Dec 1, 2010 at 17:40
  • back2dos: thanks for the link; I've read it before, but could not remember where and when.
    – user281377
    Dec 1, 2010 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/…). Jan 25, 2011 at 22:22
26

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.

12
  • 4
    "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, 2010 at 13:03
  • @Diego: Compiling encyclopaediae is also something people usually get paid to do. BTW: updated my post.
    – back2dos
    Dec 1, 2010 at 13:23
  • 12
    @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, 2010 at 13:23
  • 6
    @Matt: love is never for love alone, that's a misconception.
    – user281377
    Dec 1, 2010 at 13:26
  • 1
    I do it for love alone when it is something I want to do, some "programming challenge" for myself. Not just a "regular boring software".
    – Diego
    Dec 1, 2010 at 13:29
24

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.

4
  • 3
    You mean a free shave handle. The razor is the blade.
    – Joe Z.
    Dec 28, 2012 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
    – Sorter
    Nov 13, 2013 at 3:01
  • In my area you have to pay even for a handle :)
    – Nik
    Mar 23, 2018 at 20:28
  • @JoeZ. - I grew up calling the whole thing a razor. and never met anyone who didn't know what I was talking about until now. Maybe you refer to the handle, the blade holder and the blade/razor itself as a shaver?
    – JeffO
    Mar 26, 2018 at 12:52
10

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.

1
  • 4
    And it helps you in getting a job.
    – user4595
    Nov 27, 2011 at 11:20
4

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.

4

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.

2

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.

1

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.

1

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)

1

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

2
  • That's a horrible idea.
    – user4595
    Nov 27, 2011 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, 2011 at 15:36
1

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.

0

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.

0

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.

0

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.

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