The 6 dimensions of Open Source
Why do people choose to participate in Open Source ? It's always a mix of various reasons, so let's try to explore and classify them.
Technical
The first dimension is technical. People like open source because looking directly in the code gives them the ability to understand the behavior of their software. No documentation can match that level of precision. They also like the ability to fix it themselves when it's broken, rather than relying on usually-broken support contracts. Any non-Fortune500 that tried to report a bug to Microsoft and get it fixed will probably get my point. Sometimes, they like the ability to shape and influence the future of the software, when that software uses open design mechanisms (like Ubuntu with its free and open-to-anyone Development Summits). Finally, they may be convinced, like I am, that open source software development methods result in better code quality.
Political
Next to the technical dimension, we have a political dimension, more precisely a techno-political dimension. People like Free software as a way to preserve end-user freedom, privacy and control over technology. Some powerful companies will use every trick in the book to reduce your rights and increase their revenue, so its more and more important that we are aware of those issues and fight back. Working on free and open source software is a way to contribute to that effort.
Philosophical
Very close to the political dimension, we are now seeing philosophic interest in open source software. The 20th century saw the creation of a consumer class with a new divide between those who produce and those who consume. This dissociated usage of technology is a self-destroying model, and contributing models (or participative production models) are considered to be the solution to fix our societies for the future. Be a producer and a consumer at the same time and be associated with technology rather than alienated by it. Open source is an early and highly successful manifestation of that.
Economical
Back on the ground, there are strong and rational economic reasons for companies to opt to fund open source development. From most virtuous to less, we first find companies using the technology internally rather than selling it : sharing development and maintenance costs among several users of that same technology makes great sense, and makes very virtuous open source communities. Next you find companies selling services around open source software: being the main sponsor of a project gives you a unique position to leverage your know-how around software that is freely available. Next you find open core approaches, from companies making a business selling proprietary add-ons to those using open source as crippleware. Finally, at the bottom, you'll find companies using "open source" or "community" as a venture capitalist honeypot. They don't believe in it, they resist implementing what it takes to do it, but they like the money that pretending to do open source will bring them.
Social
A very important dimension of open source is the social dimension. Many people join open source projects to belong to a cool community that allows you to prove yourself, gain mastery and climb the ladder of a meritocracy. If your community doesn't encourage and reward those that are in this social dimension, you'll miss a huge chunk of potential contributors. Another social aspect is that doing work in the open (and in all transparency) is also great publicity for your skills and to get employment. The main reason I got hired by Canonical was due to my visible work on Gentoo's Security team, much more than to the rest of my professional experience. Finally, the sheer ego-flattering sensation you get by knowing that millions of people are using your work is definitely a powerful drive.
Ethical
The last dimension is ethical: the idea of directly contributing to the sum of the world's common knowledge is appealing. Working on open source software, you just make the world a better place. For example, open source helps third-world and developing countries to reduce their external debt, by encouraging the creation of local service companies rather than encouraging to buy licenses to US companies. That sense of purpose is what drives a lot of people (including me) to work on open source.
Did I miss anything ? What drives you to participate on open source ? Please let me know, by leaving a comment !