Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 2.67 KB

Contributions-1-5-Ind.md

File metadata and controls

27 lines (17 loc) · 2.67 KB
layout title nav_order has_children permalink
default
Open Source Contributions
2
true
/Contributions-1-5-Ind

Developer Roles

Despite the aforementioned diversity among open source projects, developers within a project typically hold one or more specific roles.

Hierarchy of roles in an open source project

Hierarchy of roles in an open source project.

These roles in fact exhibit a hierarchical structure as shown in Figure 1 and can be categorized as follows from bottom to top:

  • Consumers – These members of the community comprise the userbase which utilize a project in another commercial or non-commercial software. Consumers can provide valuable feedback regarding features, bug reports, and more. However, as they are not involved in the development process itself, they have little influence on how their feedback is being considered and addressed by developers.

  • Contributors – Even though everybody who provides feedback or input to an open source project effectively contributes to its development (see Consumers), the term Contributor, as used in the open source community at large, specifically refers to developers who make contributions to the content of a project, be it code or documentation. Moreover, they participate in reviewing contributions by other developers. Contributors are therefore familiar with the technical details of a project, but they are not able to submit/merge proposed code changes to the code base.

  • Committers – Developers with ability to merge new code into the repository. Therefore, they act as gate keepers. In addition, they are actively participating themselves in code development and review the contribution proposals.

  • Maintainer / Owner – Maintainers drive the vision, goals and technical architecture of the project. Depending on the size of the project, there may only be a single maintainer, for instance the original author/owner of a project, or a group of maintainers, each responsible for a specific subsystem of the code. An example for this is the Linux kernel and the maintainers of the respective subsystems. Maintainers are most deeply familiar with the code base and actively take part in code development and review.

Developers generally rise in the hierarchy of a project based on the quality of their technical contributions. Additionally, rising through the ranks requires a steady involvement in the project over an extended period of time. Moreover, even the highest level of project leadership, maintainers and owners, actively participate in code development. There is usually no such role as a non-coding architect.