Elements of an open source project

Traditionally volunteer driven

Open source projects are traditionally created and maintained by a community of volunteers. Typically, the volunteers aren’t paid by the project. In recent years, many commercial software companies have begun to support open source projects by paying some of their employees to contribute to them or by developing their own open source projects.

For example, PowerShell was a closed source product that was open sourced in 2016. Microsoft has a team of developers, product managers, and other employees who work on PowerShell. They’re paid by Microsoft to work on PowerShell, but they’re also part of the open source community that develops PowerShell. Many of the new features in PowerShell were developed by the community, with review and approval by Microsoft employees.

Community

An Open source community is made up of people interested in using, supporting, and maintaining an open source project. Successful open source projects work with community to establish a shared mindset. This includes the goals of the project, the values of the community, and the rules for contributing to the project.

Contributors

Contributors are people who actively participate in the project by writing code and documentation, testing releases, reporting issues, and proposing new features. Contributors can be volunteer maintainers, community members, or paid staff (for commercial open source projects).

Maintainers

Maintainers are the Project Leaders for an open source project. They’re responsible for the overall health and direction of the project. They define the standards for participation, maintain order, and set priorities. But their authority is not always absolute. Maintainers have to listen to their community members and contributors. Decisions are often made by consensus, not by fiat, and always made transparently.

Further reading