Why do People Write Open Source Software?
An examination of the reasons and motivations why people write open source software.
A common misconception of the hacker is that they are amateurs sitting at home night after night writing open source software for fun. Whilst I am sure that this is indeed true in some instances, I doubt that it is true for the majority. The open source software I have seen is too good to be done by people who aren’t very talented, experienced engineers.
One should always remember that each open source project has at least one gatekeeper. If the gatekeeper does not believe that a given contribution is a valid addition to a project, then the contribution will be rejected. Open source isn’t quite the free-for-all that some believe. There are quality controls in place to ensure that only appropriate, quality contributions are made.
As open source becomes more mainstream many hackers are commercializing their projects. Consequently, many of the hackers are now employed by the companies performing the commercialization. This gives the hacker the best of both worlds. They can work away on an open source project they find interesting AND they get paid for it just as a regular engineer does. I suspect that these are some of the most sought after jobs in the software industry (and you are unlikely to be considered without a track record of participation in a given project).
A fair number of students (both undergraduates and postgraduates) participate in open source. They have the time and the necessary resources on tap in their educational institution. Students have a pretty obvious motivation for working in open source: work experience. This is elaborated upon in the next section.
Many hackers are in fact people who have a regular full time job. Many will in fact be employed as engineers already. So, why do they do more work when they get home? There are lots of reasons, some are outlined in the next section. I’m sure there are lots more.
Why Do They Do It?
Each hacker has their own bundle of reasons for doing what they do. Here are a few of the better known reasons.
Plaudits from ones peers can be a powerful motivator. Some hackers are really famous within the open source community, some like Linus Torvalds have even achieved a degree of fame beyond it too. The famous hackers are the exception however. Mostly, it is just the day to day appreciation of users and fellow hackers that keeps people hacking. Small intimate communities are created in which each persons contribution is measured and appreciated according to their efforts and ability.
Many programmers who work professionally get to work on programs that are really, really dull. Writing data entry forms (which make up the majority of business applications) is just plain dull.
Work on open source is voluntary (for the majority who aren’t paid to do it) so you can choose a problem that you find challenging.
For every good manager out there there are lots more that are either mediocre or just plain bad. Working as an engineer for a poor boss can really take the fun out of programming.
When working on open source in your own time, you don’t have a boss. If you want to make a contribution then you can without recourse to anybody else.
If you’ve always found artificial life programs interesting, then you can work on it. And, you will probably find lots of other people out there on the Internet with a similar interest to you.
In everybody’s life, at some point, you get to ask yourself what contribution you’ve made. What has your existence meant? For a lot of programmers – given the nature of the industry in which we work – the answer can be quite disturbing. I remember a point, not too long ago, when it suddenly occurred to me that everything I had ever done professionally was no longer in use. The companies had either scrapped the code as being obsolete, or the companies had gone bust, or had been taken over and the products scrapped. It is not a nice thought to think that over a decades effort is all for naught.
Open source is different. Open source offers its hackers the opportunity to produce something that will – at least potentially – endure for a long time (at least in computing terms anyway).
My Father was involved in the building industry for the majority of his career. When we are driving around he will often point out buildings he had a hand in building. Some of the buildings have been standing for 40-50 years and will likely be standing for another 50 years or more.
Open source offers its hackers the chance for their work to endure.
All employers want work experience. All graduates complain that they can’t get a job because they don’t have experience, and can’t get experience because they can’t get a job. It’s the classic catch-22 that everybody has to overcome somehow.
Some hackers no doubt see open source as a means to them getting the necessary experience to get their first job. If an employer is presented with somebody who has demonstrated the enterprise to participate in an open source project, in their own time and expense, then that is only going to increase their profile. Maybe that will be the reason the hacker gets the job and the other guy doesn’t.