According to Steven Weber in his book The Success of Open Source (Weber 2004) there are two principal forces at work in FLOSS, individual motivation and governance. He is actually saying a bit more than that, but this is my nutshell interpretation of what he says. I think he has a good point so here I will take a brief look at what motivates people to participate in FLOSS and in the next section I will look at governance structures in FLOSS projects.
Because participation in an open source project is basically voluntary, individual motivations for participation is a critical aspect of the open source community. At first it can seem strange that people would spend countless hours in front of their computer doing hard, time consuming and sometimes even frustrating work. My experience as a programmer is that at many stages in development you face frustratingly hard challenges. This work is often done with small possibilities of ever making money from the effort. Is this done with the altruistic motivation of giving others useful software, or are there other motives behind this?
Although I said that programming challenges can be frustrating at times, to overcome this challenges is a relieving and fulfilling sensation. My first guess therefore of why people choose to contribute is because we as humans have a longing to create. We are not happy with only food and comfort. In our western world food and comfort is a commodity, and there is a limit to how much money you need to make a good living. If your choice stood between doing creative and interesting work for free and repetitive boring work for money, what would you choose? When you have enough money to pay your bills why would you choose a boring job for its payment? That is if you don’t see money as an end in it self.
Research on motivation and performance shows that external rewards in the from of bonuses etc. for performance will reduce creativity and the intrinsic interest in the task, if the focus becomes directed to the reward. Not only do it not help much in creative task with extrinsic rewards, it actually often lead to poorer performance. If you are rewarded for a task the task itself becomes only a mean to an end and therefore the interest in the task is reduced. This is illustrated by this joke (Kohn 1987):
An elderly man, harassed by the taunts of neighborhood children, finally devises a scheme. He offered to pay each child a dollar if they would all return Tuesday and yell their insults again. They did so eagerly and received the money, but he told them he could only pay 25 cents on Wednesday. When they returned, insulted him again and collected their quarters, he informed them that Thursday’s rate would be just a penny. “Forget it,” they said - and never taunted him again.
Rewards and punishment can have a short term effect on modifying behavior. For mindless repetitive tasks, which have little intrinsic motivation, extrinsic rewards will increase performance. This is because the task is seen as having little value in it selves. For tasks where the quality, understanding, learning and creativity is more important than the quantity (like computer programming) intrinsic motivation is most important. If an extrinsic reward is seen as confirming the quality of your work, and your competence, it can be helpful. If the extrinsic reward is seen as way to control your behaviour it is counterproductive.
The action of handing out your work through a license like the GPL might seem altruistic, but I don’t think altruism is the primary driving force behind FLOSS. If you contribute because of an urge to create does not mean that you have the good of others in mind. This urge to create you can see in other endeavours like art. I see some similarities in what motivates people to do art and what motivates people to hand out their code to the public. Both comes from an urge to create and perhaps change the world just a little. This urges are not necessarily altruistic.
In his book Weber propose a scheme that captures six kind of motivations seen among FLOSS developers.
I will not elaborate too much on this points. This points needs more explanation, however. Art an beauty I have already mentioned which relates to Job as vocation. The work of programming is more than a job to put food on the table. The Joint enemy with Microsoft as the obvious villain, which is a primary motive of only a few according to a survey made by Boston Consulting Group (Weber 2004, page 139). This is important none the less. As a teacher in history I once had frequently said, an outward enemy creates inward unity. Microsoft, as an enemy, is something FLOSS developers can identify as being in opposition to. Ego boosting in FLOSS does not mean boasting about your excellence as a programmer. Such behavior is generally not approved. The point of ego boosting in FLOSS is that your work boast for you. The point of reputation is both because a good reputation give an external measure on the quality of your work and because it help others to determine your quality as a programmer. To have a good reputation helps in a competitive job marked. Identity and belief system refers to a common identity and common values among FLOSS developers.
The Hacker Survey segments the hacker community according to motivation. The respondents are segmented into four groups: