Developers are in demand. Enterprises, SMBs, and startups can't get enough of them. That's why they keep throwing ever bigger salaries and more attractive perks at developers. However, some developers look unimpressed by those advances, choosing to work on open-source projects. But why?
This challenges the homo economicus, or the economic man, model that presents human beings as rational and in the pursuit of their narrow self-interests. According to the model, one would have expected developers to strive to maximize their earnings. This model and the related rational choice theory postulate that people will assess their choices in terms of costs and benefits and make the choice that will bring them the maximum benefit. They imply that people would like to be free riders, letting others pay when they can reap the rewards without incurring any cost. But, apparently, these models and theories fall short of explaining every human behavior.
Some people devote their time and effort to projects that require a lot of sacrifice for very little gain. Sometimes very popular projects turn out to be the work of a surprisingly low number of devoted developers in the software industry. Hear it from Zeynep Tüfekçi on OpenSSL, a software library used to secure and oversee web traffic:
"According to one estimate, OpenSSL is used by more than two-thirds of all websites. But for the longest time, the whole project was maintained by two overworked programmers with a few unpaid volunteers helping out—even though the code was being used, for free, by a host of large corporations and governments. Until 2014, OpenSSL brought in a meager $2,000 in annual donations."
So, not everything we do is for our selfish interests. We tip the valet at a restaurant we will never visit again; we go out and protest an unjust war taking place thousands of miles from our homes. The existence of collaborative projects like Wikipedia and Linux is further proof that not everybody is guided solely by self-interest and rational choice. Boundless geekery can explain how some open-source projects start, but not how they can be sustained for years. What drives contributors to open-source projects can be grouped under three titles:
Unlike "proprietary" software that can only be modified by people who created it or were tasked with maintaining it, open-source software can be inspected, modified, and enhanced by anyone. But this does not mean that open-source software is given away for free. Creators of open-source software can charge for the software they create or the customer support they provide. The only caveat is the prohibition of the copyrighting or patenting of any work built on open-source software.
Monetary motives are just one reason developers invest their precious time and effort in open-source projects. But they don't tell the whole story.
Altruism: Giving back to the community plays a role in developers' interest in open-source projects, albeit a minor one. Being part of a coder community and contributing to it in a spirit of camaraderie functions as an intrinsic motivator for some developers if they are already earning money to pay their bills. Without that condition, altruism won't motivate many people to go out of their way to produce for a community.
Ethics: Some developers believe that knowledge should be exchanged freely and not be copyrighted. They want a software industry that is more transparent in how it collects and uses data. They think people have a right to control what the software is doing with the data provided. Open-source ticks all those boxes for such people, giving them a chance to ply their trade in accordance with the principles they believe in.
Prestige: One of the more influential intrinsic motives that make developers engage in open-source projects is the prestige they hope to gain in the eyes of their peers by doing that. These projects are great tools for developers to demonstrate their coding skills, gain recognition in the industry, and use as a stepping stone for future success.
Better engineering: An open-source project lends itself to inspection and auditing by anyone. Bugs get sorted out quickly; the software gets tested for edge cases, resulting in a higher quality product. Therefore, contributing to open-source projects makes a lot of sense from an engineering perspective; the long-term return on investment far outweighs the effort made.
The chance to build an ecosystem: The enhanced inspection and auditing opportunities in an open-source project help these projects grow into robust frameworks and even become industry standards sometime down the road. Such projects lay the groundwork for thriving ecosystems where community members come in, extend the platform through plugins and APIs to make it fit their needs, and in the process, multiply customization opportunities for others. We like customizable platforms and software, but the real good stuff tends to be extendible, allows integrations, and can fit a plethora of use cases. Extendible by design, open-source software is tailor-made for that.
Thanks to people who put other motives ahead of their narrowly-defined short-term interests, the world has enjoyed high-quality open-source software. Contributing to and sustaining open-source projects have become a culture for many people. Understanding the motives of these people can help shed light on the culture that has been transforming our world. We shall now move on to other aspects of open-source in the upcoming parts of this series.