By Ben Pfaff
Open source is software that can be freely used, shared, and improved by anyone without payment or other obligation. The Linux kernel and the Kubernetes container management system are two high-profile open source projects. At their best, open source projects are developed by communities with diverse backgrounds who share a common goal. The work of each contributor to an open source project benefits all the other contributors, as well as end users.
An increasing number of companies recognize the benefits of open source: they can influence the direction of software important to them at the incremental cost of contributing the features and bug fixes they need. This is often cheaper than alternatives such as developing a complete application from scratch, paying a third party for a proprietary software equivalent (possibly along with customizations), or simply doing without. With most open source, a company can choose whether to keep its improvements private or to make them available to everyone.
Companies today often employ developers specifically to work on open source projects that serve the companies’ interests. But companies do not have a monopoly on open source development—in fact, only in the past ten or so years have corporate contributors begun to dominate open source mindshare. Individuals can and often do work on open source software on their own time. Their motivations vary. Some contributors are drawn to solve a problem that they have in their own life that isn’t adequately addressed by existing software. Others hold strong ideological views in favor of software freedom. And others wish to be able to demonstrate their skills to future employers by showing off their work, something like a software developer’s equivalent to an artist’s portfolio.
The next entry in this series will explain how to get involved in open source at home or at work.