Each project has independent roles and responsibilities. These roles exist within LF Energy, and they are a good example of the types of roles found in open source projects.
Participant: someone who contributes time & effort to a project at any level, including participation in discussions and meetings as well as contributing code or documentation.
Contributor: someone who contributes code, documentation, testing, or other tangible artifacts to a project. Contributions are evaluated and accepted by a maintainer or committer for the project. Contributors are generally recognized within the code itself, depending on the license, as well as by the mechanism through which code is contributed – for example, in metrics taken from submissions through github. Recognition for contributions is considered to be a valuable asset to any open source developer.
Maintainer or Committer: someone with the authority to commit code to a project’s repository. Maintainers are elected or otherwise elevated to a position of authority and makes decisions on what code to accept into a project. Many projects also have an Architect or Chief Maintainer who determines what types of code maintainers should accept and under what conditions, including every aspect from architectural decisions to code style. Maintainers are generally elected or elevated by the project itself, and are listed publicly in a file at the top of a project’s code tree.
Technical Steering Committee (TSC): a group of maintainers who meet regularly to determine direction for a project and thus advise the architect on how to design the project; also resolve differences of opinion through discussion and compromise, preferably making decisions by consensus, but also possibly by voting. Each TSC has a TSC chair who organizes TSC meetings, sets agendas, and represents the project to the TAC (see below).
Technical Advisory Council (TAC): a group consisting of the TSC chairs for each project inside an umbrella foundation, as well as a representative from each Premier member. The TAC collectively makes decisions on overall direction and work to collaborate and encourage cross-project ideas, with the overall goal to organize projects together into a viable platform for an industry. The TAC also decides on whether to endorse new projects as they are suggested. The TAC chair organizes TAC meetings, represents technical issues to the Governing Board.
Governing Board: made up of (1) a rep from each Premier member, (2) a single rep elected by all General members, (3) the TAC chair, (4) the project’s Executive Director. The Governing Board also creates committees for the project’s administrative functions, including Marketing, Outreach, Finance, and so forth – each of these committees also usually has a chair.
Executive Director: project executive and administrator – essentially the CEO of the umbrella project. Handles all business issues, creates and executes on budgets, represents the project in public, gathers new members, maintains a relationship with the parent Foundation, manages other project personnel, acts as a trusted advisor to the Governing Board, and manages legal issues in conjunction with the Board’s legal committee.
Program Manager: project administrator responsible for operational and tactical activities, project governance and documentation, management for outside contracts, relations with Linux Foundation, member guidance and mentoring, meeting organization, and marketing and event management as well as other activities as necessary.
Community Manager: guide and responsible party for the community around the project, including technical communities for individual projects as well as the overall industry community around umbrella projects. Handles media relations including social media, public speaking at events, personal aspects including code of conduct issue, and generally functions as a face for the project in public spaces. Responsible for representing the community back into the project. Often related to (or the same person as) a Developer Advocate or Project Evangelist, usually a more technical role that provides or enables project demos and helps explain technical issues to others within the project. NOTE: LF Energy does not yet have individuals in these roles.