Why is it that people write free software, such as openoffice, spybot etc?

+11  A: 

There are a variety of reasons, one being that a noteworthy piece of software can presumably help someone get notoriety, jobs, money. And I suppose some do it just for fun. Whatever the reason, bless 'em.

In many professions where talent is a major factor in success, such as in music or writing, showing off your talent can lead to success. Hiding your talent won't get you anywhere.
+8  A: 

I once heard someone from Sun say that it was cheaper to buy Star Office and open source it than buy Microsoft Office licenses for all their staff.

Wow that is some motive!
With the added bonus that it might really harm Microsoft of course ;)
+18  A: 

The Cathedral and the Bazaar explains a lot about why and how people write and contribute to open-source software (such as OpenOffice).

That book is a good read. I actually bought the paper copy.
Thomas Owens

Where Are All the Open Source Billionaires?

Some people think there are more rewards in life than just the accumulation of money.
Ken Ray
+35  A: 

I'm reading between the lines here: Why would anyone want to write programs without being paid for it? You see programming as just another job, right? (I'm just guessing, so don't be offended if I'm wrong...)

Some people contributing to free software do it as a hobby. Some people like to go golfing on their spare time, some people like to code. Some people also like to do some work-related stuff when they're at home: carpenters are likely to use some of their skills at home as well.

However, there is an ideological side as well: Some people hold the opinion (very strongly) that software should be free. Not free as in "free beer", but free as in "free speech".

If you want to read more on the subject, this Wikipedia article may be interesting.

I've got to say that the ideological side you describe reeks of the same silly "property is theft" kind of ideas that keep me from living in Seattle. I heart capitalism. That said, I do like free stuff. Let the software hippies do their thing, I guess.
BTW, this is a great answer.
I think the great majority of free software users are pragmatists: as a programmer, free software allows you to freely modify any and all of the code you use, just as a car mechanic likes cars where he can actually open the engine hood.
We have plenty of capitalists in Seattle. You just need to live east of Lake Washington.
I've always enjoyed the idealogy of this mindset but personally I could never fully grasp it. Personally I think the driving force behind free software is that the best software comes from diverse and critical developers; either you can hire them to improve your code but risk your money, or you can share your code and ask them to contribute. Its an alternative approach to development, you mitigate the financial risks and gain the brains (if you can attract them).
+4  A: 
  • To do something nice.
  • There is a sense of siblinghood when you release a piece of code and others join you for the fun of it.
  • Some are socialists/communists.
  • Keeping the ideas of the counter-culture movement (60s) alive even after it has been turned into a fashion statment.
  • To feel the joy of your users thanking you.
  • Making your own spec.
  • RMS is cool. So you want to do what the cool kids do.
+1  A: 

I write code because i like to solve problems and also, I think that it helps me learn the skills i need as a coder, thus helping my job. I'm sure that the people who write opensource code also feel similarly - they get to fix things to improve their skills.

+17  A: 

I'm very selfish. My best stuff came about because I needed it and nothing did what I need. Then I want my tool to gain from everyone else's experience and feedback, so I make it available to the world.

IMO the best Open Source software springs not from altruism but enlightened selfishness. Write what you need, share it with the world. Most of Open Source is finding this balance between sharing and selfishness. Too selfish and the tool is only useful for you, nobody uses it and you get no help. Too magnanimous and the tool is not useful to you, you have no reason to use it, you have no good insights to improving it, you burn out.

(I'm also highly addicted to programming, so I get to tap that release lever and get that food pellet.)

I agree in full. Altruism is the wrong reason to take anything seriously in this world. It goes against the grain of human nature and it unsustainable when the pressure is on.
Daddy Warbox
Excellent answer
Seriously, this is a great answer. It made me think of a story we had to act out in Boy Scouts a long time ago called Stone Soup. A couple starving beggars wandered into a new town but noone would feed them, so they conned the townspeople into giving them food by beginning to make their secret "stone soup" (water and a rock) and convincing others to chip in other ingredients. In the end there was enough for everyone, and everyone considered it a free meal.
+5  A: 

People write Open-Source-Software for different reasons. Here are some:

  • If you wrote a software for your own use and you have not the resources/skills/time/will to market it yourself. Why waste the effort you did in writing the software by using it alone and not giving it to the public?
  • Because Open-Source-Software can be an invitation to join the development and you don't want to do all the work on your own.
  • For appreciation. See ohloh.
  • To learn in programming. Open-Source-projects are a good place to strengthen your skills or to learn new skills.
  • For reference: If you look for a new job, you can say 'I did this and that. Take a look at the source.' At your old job the software you wrote may not even public, but some internal software, so you may have no reference.
  • Companies can tease the competition.
  • You use Open-Source-software and want to give back.
  • All software of a domain miss a feature you want. You can code it, but you don't want to start from scratch with the full application. So you can choose an OSS and implement the feature you need for it.
  • For money: Some companies pay developers to create open-source-software, and they have a plan to get money from it.

There may be more reasons.

It often happens that when looking for a job, a person may still be bound by a non-disclosure agreement with their previous employer and so cannot discuss details of what they worked on. Working on an open source project gives you something valuable to discuss in job interviews.

Because boredom can sometimes be the greatest motivator. At least, it is for me. Some of my neatest (Read: Interesting to me, useless in large) programs came from boredom. And why not express your boredom to the world?

Peter C.

As I usually say, "We'd do it for free if they wouldn't pay us."

I do not believe in the "religous" aspects of open source, but I enjoy coding, and when I get comments like Great, exactly what I was looking for! or a real timesaver, I am happy.

In a way, lots of todays commercial software development wouldn't be sustainable if it wasn't for free contributions. Things are easier if we share. I understand that many people will use that to solely their own advantage, but leeches won't stop me from doing what I think is right.

+13  A: 

I worked on Amarok for 3 years. I don't think it's likely I'll ever work on such a product again. I was the second person to join the project, we took it from being unknown to having millions of passionate users.

Currently I work on the streaming client, we have millions of users too. But it is not as fun. There is something about working on a project where you make the rules, where money is not a motivating factor, where your users are eager with patches and suggestions and where there is a massive and vibrant community. The feeling of really giving something of value to so many people. Giving them the source code is the real value. I've seen a few bits of my code turn up in several other applications.

I'd give up my salary to get that back, honestly.

Max Howell
I think the real deal is money not being a motivating factor, giving the source code doesn't have much to do with it. Especially since most users don't care about the source code
Click Upvote
It's prolly of note that I only got the job at because of Amarok. Most people would consider working at a top 100 web company a pretty tangible benefit. I certainly do.
Max Howell

There are lots of reasons to create software. Personally I create software because I need it, not to sell it. In that case, there's really no downside to give it away. But you gain a lot of testers, and some of them are "above user-level", and will send you bug-reports with juicy details. or even patches.

Example A:

You have developed a piece of software, and choose to give it away as open source. I download software, see that it fits my needs. This i discover a bug. I download the software, make a patch and send it to you. You include the patch in the next version.

Example B:

You have developed a piece of software, and choose to sell it. I don't get near it.

Haha, oops. English is not my first language, but I should have noticed that one. :)
+1  A: 

This isn't a direct answer... but I find that once a project is open source you effectively open it up to every programmer in the world. This has a massive benefit of being able to be worked on by some of the best talent available.

Closed source projects can't do this. Would I like to improve Internet Explorer? sure, it drives me nuts, but I can't contribute. Firefox on the other hand, I can report bugs, contribute test cases and sample code and finally patches.

Since I like open source projects for the above reason, I'm happy to contribute back to the community when and where I can.


The reason I chose an open source license for my current project is simple: most of the knowledge I have about software development was available for free to begin with. The net result is that the application is basically a sum of that knowledge in a more condensed and central form.

Jasper Bekkers
Not been to school? Never done a training course? Never bought a book? No-one making a living from the advertising on the website? (Hint - this one, Google...) No-one paid to write the documentation by IBM or Sun?
+8  A: 

Note that quite a lot of developers are working on free/open source software because they are getting paid for it. Many companies have a strategic interest in the availablity of free/open sorurce software, eg. Sun is financing development of OpenOffice because they want to undermine the MS Office marketshare.

Yep, just like Joel said
How does Sun financing OpenOffice to undermine Office help them in any way financially? Yes, I get the desire for open standards, but it simply doesn't make sense to me to support something financially like that if there isn't anything in it for you.
Sun employees are paid financially for development of open office
Click Upvote
True true; also companies that contribute to open-source probably are aware that the open-source market consists of a HUGE market share. Being the creators of software gives them the expertise and insight to sell support services. 15 years of Apache web-serving dominance can help back me up:
+3  A: 

I write free software because I am lazy. Yes, my motivation is lazyness. If I am able to spend 4 hours writing a tool for something I could have done by hand in an hour, I feel accomplished, because now I can run that tool over and over and have it only take a few seconds, and not have to do any work.

The fact that I release it as open source is just to help some other poor soul out there, and maybe they find it useful as well, I really don't care about other people. I care about me. There is a nice side effect of other people enjoying it as well.

+8  A: 

For me, software is a craft. Yes, I know there are people that believe that software is engineering and the 'craft' side of it is for 'cowboys' and 'hackers'. To me, these people have no soul for software. Software is one of the very few things that is created completely out of a person's mind - like music, math and art.

I would argue that the best developers love writing software, like a musician loves making music, an artist loves their art, or mathematician loves what they do.

Of course, technical excellence and personal discipline apply to software development, just as they do to these other discipline, but the craft element is key.

At the end of the day - craftsmen* do what they do for the joy of it. It brings us more joy when others find use our work.

  • this included women..
+3  A: 

There were a lot of good answers here, already, but I would like to answer this with a question:

Why is it that people take the time to write answers (with code) for Stack Overflow or write extensive articles on the CodeProject? :)

Very good point!
Preet Sangha
+3  A: 

There's always the feel good factor. Being satisfied that you've solved a problem. Practising / improving your coding skills. For some professional (paid) programmers it is also their hobby. Plus if you can build a good reputation as a quality programmer on open source projects you may be worth more to an employer ?

+1  A: 

yes but what if i make a script that someone uses right and they create a website that ends up making millions but at first it started with open source scripts and i dont get any money from it

thats pretty stupid

Just to be contrary. If that happened, I imagine you would be be head-hunted into a highly paid job pretty quick.
"But what if I make a pencil that someone uses to write a script for a very successful movie, but at first it was just chicken scratch from the pencil *I* made, and I don't get any money from it?" Now *that* seems pretty stupid. Admittedly it is an exaggeration, but I think it speaks to the point.
Zach Snow
Why was this accepted over the other answers...?
+1  A: 

A lot of open source developers are paid - Joel explains it well. I dare say they're idealistic too, but they are earning a living.

+1  A: 

There are many reasons. Some people like to get their foot in the door somewhere, and put it on their resume. Others like to code to gain experience and learn from others, as programming is constantly a learning experience. Some people just consider it a hobby and like to give back to the open source world. There are also many people who believe all software should be free and enjoy contributing purely because of this. The list goes on.

John T

I think the whole point of some people making open-source software is because they want free information to everyone, which they probably didn't have. Yes, we can go with torrents, but thats illegal and doesn't have a source. And, as Hutch said, its simply the ability to feel good about what you have done. I, myself, code for fun, and have tonnes of software I would like to sell. And, the whole point of the word Open-source means you can change it! If only Windows was Open-source...