You are here: Home Blogs Why Do Developers Contribute To Open Source?
Monday, 16 July 2007 11:22

Why Do Developers Contribute To Open Source?

Written by 
Rate this item
(0 votes)

Bas de Baar,

Whatever your take is on projects, at the end of the day it is just a bunch of people working together to achieve a certain goal. To laugh, cry, pull pranks, play dirty tricks and show all other kinds of behavior towards each other. If you are lucky they even work to reach the final goal. If you take everything away, and put people in the center of what a “project” is, you will see a group of stakeholders interacting with each other, just like any other group of people would do. As a Project Manager it is your goal to herd the project crowd toward the required end result.


If we put the behavior of project stakeholders to the front of a PM’s concern, the most important and essential question we can ask ourselves with the profession is: “Why do project stakeholders behave the way they do?” For the money, the glory and the girls. That would be the quick answer. Humans works for incentives, give us money and we will do the job. We also want to be famous. We do almost everything the get in the spotlights. And there are the girls, or boys, whatever you prefer. Before you expect an answer, this is one of the BIG questions of our species, which we haven’t completely figured out yet. But we have come far enough to shed some light on this topic.  It is a crossing between economics, psychology and sociology. And yes, as a Project Manager you have a broad pallet of aspects to consider.

Asking the right question is already half the battle in this subject. “Why do developers contribute to free open source software?” They are not paid for their effort. However the products produced have a remarkable quality. It would be instructive to see, what happens if we leave money out of the equation. There are two ways to approach this question: looking from the perspective of the lone, rational, individual developer, and from the perspective of the programmer as member of the group. Let us first have a look at the last perspective. Let me give you a heads up on the stuff that is coming: the answer is "Bill Gates", two times - because people liked the richest man on earth, and because people hate the richest man on earth. 

To get this, we need to think back to your high school years. Or, if you are from outside the US like me, think back to all those cliché high school movies from the eighties. They consisted of belonging to the popular group of athletes and cheerleaders, or to be condemned as a geek. The high school years seemed to be defined not as individual, but more or less as members of a group. This is actually the field of sociology where a person is looked upon as a member of one or more social groups. You could be a black female that belonged to the geeks. That would mean three groups you are affiliated with. Some groups you are born in, some groups you may be forced in, on other groups you might desperately try to get in. Being a member of social groups provides people with an identity. It provides a sense of "self", a way how one sees him self within society.

"Identities are ways that people use their affiliations with groups to come to an understanding of themselves as individuals." [1] You can go through all kinds of weird ways to get into groups you want to belong to. I remember a movie (can't remember the name) where the smart girl had a set a glasses (of course), and become a complete vamp, and cheerleader  (of course) just by removing here glasses. It was comforting to see the stereotype be confirmed, the glasses as one of the major attributes of a geek (footnote: I am using "geek" and "nerd" interchangeably. However there is a slight difference: "A nerd is an intelligent person fascinated by knowledge and contrast, a geek is a person merely fascinated by technology." [2] Just so you know.)

Anyway, those were the eighties. Fast forward to this millennium where nerds are millionaires, where the words "nerds" and "success" go together. The increasing importance of technology gives nerds and geeks the upper hand, being fluent in everything tech. It is considered cool to have knowledge, to be smart, be the opposite of the shallowness of appearances. It's hip to be a nerd. Bill Gates, being the ultimate successful geek, paved the way to let "nerd-ism" be something you want to belong to. You don't have to hide in a cellar if you dwell over software quality; you don't have to be locked away if you get sexually aroused from the elegance of structured code. It's fine, it's OK. There are more like you.

Enter the open source crowd, or developers of Free/Libre and Open Source Software (FLOSS) as in some articles used. An often quoted reason for contributing to FLOSS projects is the respect and recognition the members get from their peers [3]. As being a member of the FLOSS community is a large element of a members identity, recognition of fellow members reinforce the self-esteem. The shared values like the mentioned quality and elegance of software keep the group together.

I mentioned Gates two times for a reason. Affiliation with a social group by choice is also an expression of "things you are not". Developers that worked (or still work) with traditional software companies may be horrified by internal control procedures, politics and concessions done to make money, concessions e.g. to the quality of the code. This triggers counter conformity, and draws one to the counter-group. So, Bill's Microsoft feeds the FLOSS community of new members by, well, just being everything the open source is not. That is a double whammy for Bill.

Remember that I mentioned two ways of looking at this question? It is the economic view of this issue. “From an economic perspective, a programmer will choose to contribute to an open source project if the benefits outweigh the costs of participation.” [4]. It is a view of the world in which everybody needs a form of incentive to do something. A person actually needs a carrot in front of his nose to get his butt into gear. And even the carrot will not cut it. The sweat that is broken to move one’s ass must be not too much otherwise we don't even bother. Humans are rational creatures. We think about the benefits. We think about the associated costs. We ponder. We calculate, and if the net sum is enough, we get moving. If we would be just talking about money or other monetary items, it would be a very sad view to be looking at. However, you can also consider dating; going to extra mile to get her affection; buy her a drink to get to third base. So, it can be a lot of things. It is an rational choice by the individual.

And yes, doing open source development can have its rewards. You can make a distinction in immediate and delayed benefits [4]. A lot of developers start out in FLOSS by using the software themselves and wanting some additional feature or some bug fixed. By completing development or assisting by testing they ultimately get the software they personally need. If you look at the longer term, having a great standing among the open source community can result in getting better and higher paid jobs in the market. You learn the trade from the best; you improve your skills, and this can be proven. It is visible for the "outside world", the businesses, by having good rankings among the development crowd. So, although money is not involved directly, it can be seen as a delayed benefit.

It is possible that people get involved in open source development for the money, the glory, and eventually, the girls. It is just any which way you look at it. I personally like this one [5], which doesn't sound that weird to me any more. Being the ruler of a computer is like creating your own worlds, defining your own reality and being omnipotent. This is what developers feel like sometimes. This offers great satisfaction to everyone born that needs to have power and control. The open source way doesn't interfere with other worldly issues like making profits. It is just all the gods and their universes. Think about that, the next time you try to get a programmer to change the color of a button.

[1] David K. Brown, Social Blueprints, Conceptual Foundations of Sociology, Oxford University Press, New York, 2004

Read 10514 times Last modified on Friday, 02 October 2009 03:07
Login to post comments

News and Promotions

Keep up to date with the latest happenings by signing up for our newsletter. Subscribe below.

Twitter Update

Parse error: syntax error, unexpected end of file in /home/spektmedia/public_html/wp-content/plugins/ccode.php on line 82

Who's Online

We have 299 guests and no members online

Got something to say?