Why Do People Write Open Source Software? 283
M.Broil writes "Two interesting articles try to answer this question. One's at NewsForge, the other's at Cybernaut.com. The two writers reach conclusions that are almost exactly opposite. Which one is right? Or is it possible that different open source coders have different motivations? (That's what I think, anyway.)" I suspect as well that each developer has their own reason, ranging from ego to malcontent to benevolence.
different people different motovations (Score:3, Interesting)
I personally write cause it passes the time, and because some projects I can submit and get marks in my classes at university for the projects I do.
I guess to answer you have to examine (or almost have to) a persons beliefs and lifestyle. I believe open source is the way to go for most things, some I don't however.
They still don't get it?? (Score:5, Interesting)
Does it really take people that long to understand that someone may want to create something just for the sheer joy of creating something useful or helpful? How the hell do you explain drawing, music, painting, etc.? Jesus, corporate-boneheads must think everybody is a greedy, sonuvabitch driven only by monetary compensation.
blue
Re:Most open source coders (Score:5, Interesting)
Actually, I disagree that communism failed because people got tired of contributing. In my opinion, there really hasn't been a "ideological" communist state to exist yet. Russia and Cuba are both just glorified dictatorships, not communist states - no matter how much they claim otherwise. Their governments ended up hoarding all the resources and not really giving back to the people they governed.
Getting back to open source software, however, a key difference is that you can LEAVE an open source project whenever you feel like. Do some people have the attention span of mayflies? Sure. But sometimes they just need a break to be able to get back into the project. Since this is their personal interest, it's less likely to be subjected to permanent disinterest. Somewhere, somebody loves everykind of project.
blue
Why I wrote it. (Score:5, Interesting)
One was a simple addressbook, 2 were games, and one a graphics prog - the latter for Commodore 64s.
I released them all as free software, source included, and didn't know what the GPL was at the time. All the same it was open source, simply because I couldn't be bothered with the marketing/distribution/etc. I may have sold them as shareware or donationware had I a strong enough urge to, but for me the majority of the fun was in writing the programs themselves. Getting money for them seemed more work than I could be bothered putting into it
The same answer to different questions? (Score:4, Interesting)
I'm sure nobody can say why exactly people write open source software because different people are quite likely to have different motives. That said, I think we can look to Slashdot posters for equivalence on at least a few levels.
I say this because I've often wondered to myself, "Self, why do you spend at least a few minutes each week drafting comments to slashdot postings?" And the answer, just for me, varies depending on the day, the post, and my mood.
Some days I post to avoid work and flex, perhaps, a different part of my brain. The same might be said for some authors or contributors to open source software.
Other days, I post because an article catches my interest and I have something compelling to say. Again, the same might be said about open source programmers. They contribute to projects about which they are passionate.
Other days, I post to get a rise out of others or to simply be an attention-seeking karma whore. Surely, some open source programmers contribute for recognition, status, or props from their peers.
My bet is that most people write open source software for many reasons and that, even for an individual, those reasons change from one day to the next.
OPEN SOURCE PROGRAMMING ~= SCIENTIFIC DISCOVERY (Score:4, Interesting)
First, most OSS developers do not think they can make money selling their software. They think that software that sells needs to be super stable and perfect, with a perfect UI and a large advertising budget... Though, shareware shows that this does not have to be the case.
They do not realize that they are taking food out of their future mouths.
Think about this.
When someone makes a scientific discovery, usually, thier discovery becomes part of the public domain and everyone can use it without paying royalties. On the other hand, when someone writes closed source software, they must be paid whenever anyone wants to use that software.
Open source software (via the GPL in particular) causes software development to resemble scientific research, as you give your "inventions" to the public domain, allowing others to improve and advance the "science". The progess is then cumulative (or can be), as other programmers add to existing sofware and improve on it.
peer pressure (Score:2, Interesting)
why i realease as open-source (Score:4, Interesting)
my boss tells me: We need a program that does foo
So i write the program that does foo, and if i decide that it could potentially be useful to someone else except me, i release it as open-source. I get enough money from my job, and have to write the program anyway. It's not like i'm obsessed with the thought of one day writing the killer program that everyone simply has to have and that i'm gonna become a millionaire from selling it.
Why open-source? Because my software will be customized for our machines, our OS and it may not work anywhere else. So instead of someone else reinventing the wheel, he could just as well check freshmeat, get my program and it would hopefully work with some minor modifications.
What about laziness? (Score:5, Interesting)
For example, this project [sourceforge.net] was part of code we build at a startup (now defunct). Since then I used it in two other jobs. The team that build this software to start with, is still using it at several different companies.
So, rather than building the same thing again and again, I got to build it once and then since it's open source, I get to use it as long as I need.
Why DO people write open source software?? (Score:2, Interesting)
Here are two reasons..... (Score:5, Interesting)
1. To show my customer that I can bring them a wealth of functionality with no additional cost (which goes a LONG way towards explaining why we keep getting awarded our military contract year after year even though our expense is a little higher than our competition)
2. To level the playing field and to empower the little guy. Here's a great example, travel agents are being put out of business slowly but surely by airlines and GDSs (SABRE, WorldSpan, etc) by the way of no commissions, etc.
Orbitz, a collusion between carriers to control the distribution channel for tickets, does things like sends ticket holders a notification if their flight is late and so on. Travel Agents have not had that ability until now. They CAN use such CRS solutions like Virtually There and so on but SABRE strips the customer data and will market to their customers behind their backs bypassing the payment of any commisions. This lack of commission is pretty huge. Imagine if your travel agency was turning 10 million dollars worth of revenue for the airlines to get nothing in return?
I created a Perl app called TripTiger [travelagencyhosting.com] that parses CRS terminal data and stores it on the travel agent's web server and stores it in a MySQL database.
The CRS cannot harvest their customers emails, I can have a Perl script running via a cron job to check flight information and send notifications but MOST importantly travel agencies can now control their customer data.
TripTiger is FREE to all trave agencies and they don't have to host with my service at all. It's more important to keep them in business by demonstrating their value to the customer and this helps.
Open Source hasn't crashed the travel technology party and I am trying to help make that happen. Otherwise travel agencies aren't going to be in business much longer.
By the way, I have placed TripTiger on Sourceforge [sourceforge.net] but am having some difficulty with file uploads if anyone can offer advice. I have the spirit just not a master at the mechanics yet.
What is the "open source" you speak of? (Score:5, Interesting)
What open source needs to do:... blah blah blah
Sorry, but this concept really drives me up a wall. What centralized 'open source' organization are you talking about? Open source isn't a single group. It isn't a solid movement. It isn't a company or even a consistent culture. Heck, I'm on open source developer, but I have no connections with most major projects individuals think of when they say 'open source.' Sure you have the FSF and the Apache Software Foundatation. There are larger projects like Gnome and KDE and the Linux Kernal. We also have some companies like Red Hat and SuSE. But they all distinct entities! They often disagree with one another. They often disagree internally! So let's repeat it again: There is NO open source master plan!
Despite what anyone tells you, the 'open source' you speak of is a loose connection of individuals each with their own interests and reasons for contributing. And no open source developer has any obligation to make a peice of software any better for you as a user anymore than you do! I'm doing this as a hobby. Because I like it. Because I want to. Because it's fun. And if I don't want to build "in-between" programs like games or media servers, then that's fine. Who are you to tell me I should. Heck, I don't even have to make my software, which I write and give away FOR FREE, any more user friendly than I want it to be. If you want something more user friendly, then WRITE IT YOURSELF!
I can't stand it when open source users cry about why "open source" is going to fail or why the software sucks. Well, the beauty of it is, if you really think that, go over to sourceforge and start your own! Or maybe you could spend some time writing some documentation, or funding the project (in which case the developer would have an obligation to listen) or maybe even submit some code yourself.
But one last time: OPEN SOURCE IS NOT A SINGULAR MOVEMENT. Each developer does it for his or her own reasons and in most cases that means that they'll write and develop what they want to. No one beyond ESR or RMS has ever promised anything more. Linus sure hasn't. So before you claim the movement will never work, you might want to check if there's really a movement to begin with.
because it's fun (Score:2, Interesting)
Another reason (Score:2, Interesting)
As such, if there's a particular type of game that you like to play a lot, over a period of many years, you have what I see are two choices: play a series of disconnected commercial games that come somewhat close to giving you the feeling of having played that sort of game for a while, or play an open source game of your chosen genre.
That's the reason to play. The reason to code is to put back into the community -- either you want to see a change to match your style, or you just want to do something to make sure that this product is still around for you in a few years.
Because no one else did. (Score:3, Interesting)
Someone wants an app that does X in a certain way Y. They could only find an app that does X-3 and it does it in a round about way Z. So they write an app that does X in the certain way Y and release it with the source so that others can modify it to suit their needs as well. Perhaps their mods will be benefitial to the original author as well.
Linux, Perl, blah blah blah, all started this way. It's not complicated or difficult to understand.
What's difficult to understand is why so many people release shareware that does one simple thing and expect people to pay them 20 bucks for it.
Re:Most open source coders (Score:2, Interesting)
I guess you didn't get enough responses to your Communism troll that time.
I disagree (Score:3, Interesting)
So do commercial products. If noone bought Windows, do you think they'd continue selling it?
I am an OSS developer. Here's my three reasons why:
1. I want to make the world a better place by contributing with free software. It may not be much, but it helps.
2. Credit. Dislike it if you will, but being an OSS developer is a nice way to show off your code. Read some of the the OpenBSD sources and be impressed. Those guys really know how to code, and the proof rests within the source.
3. I am a "hobby communist". I believe in the communist system - and don't be afraid, communism isn't about torture and repression. The theory behind real communism is sharing the goods.
(But hey, don't get me wrong, not all OSS developers are communists
So, projects die as they become less "hot" to work on.
Open Source For Profit (Score:4, Interesting)
Reduce the cost of your tools and increase the productivity of your labor.
I've worked as a contractor on a number of database and batch environments in and around a small city. The amount of duplicated effort is astounding. Everyone has their own half-baked, written-from-scratch solution that is expensive to maintain and lacking in some respects. As a contractor, I have the advantage since I can apply some of what I learn at company X to company Y.
However, for legal reasons I need to very careful not to re-use code from one place to another. I'm also very careful not to reveal trade secrets that might seem obvious to everyone but a lawyer. Really, I think most companies see sharing of code as a legal thicket instead of a common-sense approach to saving effort.
(Now, I'm not saying a company should give away all its code, just the dull-but-imporant stuff unrelated to the core business.)
I think most of the primary contributors to significant open source projects do so with the backing of a company with an enlightened view of self-interest. I really hope this view catches on, since it would make the workdays of slobs like me that much more rewarding.
Don't Know Why, but Maybe When? (Score:3, Interesting)
Assuming, of course, they're employed.
The one thing that has bothered me about OSS (I like the concept, don't get me wrong) is that writing software for free might be a coder pride thing, but folks, vanity don't pay the rent or the groceries.
Unless you're independently wealthy, you have to be doing something to pay for the pork and beans.
There is no mystery (Score:5, Interesting)
Why does this question even get asked? Why are people always questioning the motivation of this particular hobby or activity? It seems like someone out there would prefer that people *didn't* write open source software...
Re:The better question is.. (Score:1, Interesting)
Comment removed (Score:2, Interesting)
Releasing source code as a consultant (Score:2, Interesting)
The NewsForge article concludes that we go open source because "there's something in it for me." And yes, that's true. My #1 marketing plan has always been, "Get it distributed; get it used; get it accepted." Open source is a great way to "get it distributed," especially for customers with thin wallets.
On the other hand, Maslow's hierarchy of needs in the Cybernaut article also applies. At this point in my career life-cycle (I'm 53), I've drawn a line and said (financially), "Enough is enough!" So, it doesn't bother me to "give it away" as much as it would have 10-20 years ago.
Re: Communism (Score:2, Interesting)
Communism doesn't mean that "everyone works on it", it means only that everyone owns it. In USSR, everything belonged to the state which was supposed to belong to the people, so theoretically I as a citizen of the USSR (only a child back then) owned a microscopic share of everything, but didn't work anywhere.
The idea that communism is "everyone gets paid the same, no matter what they do" is wrong. Being equal didn't, according to (Neo-)Marxist theory mean "finishing the same" (=getting paid the same), but having the same starting position - equal opportunities to get a good education etc. It's kind of the same in the Open Source community - you get your name higher in the list, if you do more work (correct me if I'm wrong), and some people get paid for working on some certain thing.
Why do some projects get "less hot" do work on? Maybe it's because there's nothing more to do?
Re:End users != beta testers (Score:3, Interesting)
When people say "Linux has to do X for it to be ready for the desktop", 9 times out of 10 they are talking about for the lusers, which contribute nothing at all back.
Thankfully, generally what is good for the lusers are also good for the users and so generally these things get done.
On the one hand I do like having the lusers because they have the side effect of dragging in hardware companies, games, users, and corperate funding. On the other hand they can be demoralising and have a negative affect.
Re:Most open source coders (Score:1, Interesting)
Actually, Open Source is based on the foundation of capitalism: the free market. Open Source is the ultimate free market for ideas. Anyone can put forth code, but no one is under an obligation to use that code. Different project compete (mysql vs postgres, linux vs *bsd, redhat vs suse, etc). Cutsomers decided which succeed in the marketplace of ideas, and which ones fail.
Re:End users != beta testers (Score:4, Interesting)
Bottom line is: Don't complain about bugs in free-as-in-beer software if you haven't made a minimum effort to fix it.
Re:The better question is.. (Score:2, Interesting)
I have about 500 downloads during 2 weeks if i announce a release, webstart users not counted (which should be the majority of users), but there are only few incoming emails and they are often in phases of the project when no work is done for at least a week.
Most mails are about others who want to embed the ftp api, almost no bug reports even when there have been very obsolete bugs in some releases...
This is a huge disadvante to commercial product where customers tell you thousands of duplicate bugs even if there is an ovious workaround.
OSS Community and Emulation (Score:2, Interesting)
Doesn't the OSS community work as a culture where one's motivation comes, in part, from emulating what others have done? A culture isn't centralized, it doesn't have committees or even goals. In many ways, "it just works"...
There are obvious leading figures and groups, of course. And, surely, some people start coding because they read The Cathedral and the Bazaar or they look up to RMS or Linus. Others are just part of it because it works...
On the other hand, contrary to a "real" society, (almost) nobody's born into it. Come to think of it, we also choose our affiliations IRL, so the difference isn't so great...
Re:Programmers... (Score:3, Interesting)
If somebody running a Microsoft OS decides to "fight back" by writing open source code, they just become one of us, not one of them. Look at the 3D engine community for an excellent example [sourceforge.net] of that. There are probably more Windows coders in this than Linux+all unixen combined. Yet everybody's working together, without animosity.
Sure, it's likely that most of the Windows coders will eventually drift over to the Linux side, just because it's so much easier to get stuff done when all the tools are there, and because - well, things are just moving faster on this side. But there will be a new crop of Windows coders joining, and the end effect is, it's likely there will be more Windows coders on these projects than Linux coders, for a good while to come.
So, to answer your question, that's what happens. It's good.
Re:End users != beta testers (Score:2, Interesting)
Re:The better question is.. (Score:3, Interesting)
Even with Gentoo and all the source packages sitting on my computer I rarely feel the need to unpack one just to find out the maintainer's email, though if there were an easy way (help:about is fine, except many people don't take advantage of it for this purpose) and maybe some sort of meta-information for a library. If every library exported a const char* "maintainer" string, then a simple utility could dlopen the library and spit out the data given a library name.
Even a centralized database somewhere that would connect a package name to bug reporting instructios would be better, though that's more steps for the user--bug reporting should be easy, not a chore, if you want it to be done.
Libraries are the toughest because everyone suspects the program they're running, not its silent dependencies.
I for one would be more likely to report and track down bugs if A: I saw them more, and B: It was only ever a few clicks away.
Automated systems make me feel distanced from the bug reports. I'd rather have an email address and a checklist of information than a fill-in form and a "click to send" button so I could at least anticipate interaction with the maintainer.
Brian
Simple answer. (Score:3, Interesting)