Another important point is about motivation. When people approach the open source movement, one of the first questions is something like ``why did all those people make such a good software without a clear reward in terms of money?'' The answer is difficult to explain only in terms of money and personal expectations. In several cases, there is a clear expectancy of economic reward (this is in fact usually the case when it is a company who leads an open source project). But in many other cases, the reason which impels programmers to start, contribute and maintain open source projects is not directly related to economic rewards. For many people, programming is considered as a highly rewarding activity in itself. As such, contribution to open source projects can even start as a hobby, or as a side effect of some University or School assignment. The reward of coding is also greatly amplified by the fact that the code is in use by people, and that a community starts to gather around and discuss specific functionality, design, and coding issues14.
This psychological effect is really important in explaining why so many projects are started out of the blue, with seemingly no reward. Although it may seem surprising at first view, it is not that rare if we put it in context. For instance, most of the history of information science and programming, in fact, started this way in academic circles. And still many non-applied sciences advance thanks to the work of scientists who feel more rewarded by research in itself than by money. Although this effect of self-reward is perhaps not so common in the world of proprietary software development, it is today a strong force in the open source community. And what is even more important, it seems clear that it has an extremely good impact on developer's productivity, an interesting effect in a discipline where differences in productivity from person to person are often a matter of orders of magnitude.
However, this not the only force which drives open source software development. Often open source simply makes sense in a practical or economical way, as a more efficient way of producing better software with a given amount of resource. In other cases, a company can enter open source development as the only way to succeed in a market already dominated by strong competitors, or as a way of shortening the time to market of a product (by reusing existing open source code). These more classical motivations, more interested to companies, will be discussed in section 5, where self-sustaining open source based economical models will be presented.