Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Governance Model for a Meritocratic Governance Structure

Standard Operating Procedures (SOPs) for the Project Management Committee (PMC)

1. Preamble

2. Background

3. Roles And Responsibilities

...

9.2 Seeking Support

11. Conclusion

1. Preamble

OpenSRP (or the Open Smart Register Platform) is a meritocratic, consensus-based, open-source, community project.

...

OpenSRP is now being implemented beyond research purposes and rolled out at a much larger scale across multiple countries. The tool is currently deployed and is live in eleven countries with different implementing partners and stakeholders. Programs in another nine countries are in progress or planned for rollout from the end of 2019. The longest-running deployments to date are in Pakistan, Bangladesh, Indonesia and Zambia, where the tool enjoys great buy-in from Ministries of Health and local implementing partners.

2. Background

This type of governance model was selected for OpenSRP, based on the analysis of various different models. Variables we considered in terms of choosing the best model for OpenSRP included:

  • How big do we want the network of contributors to be?

    • At present (Dec 2020) , we do have a fairly small team of contributors, but we want to expand this - but in a controlled fashion - and ultimately make it as big as possible and so therefore we considered the “Bazaar” and the “Meritocratic” approaches as the best fit

  • How many committees or layers do we want to have in the structure?

    • Our original thinking was that we need 3 committee, but to keep this as simple as possible, whilst allowing for an expansion in terms of contribution and collaboration, we have opted to institute 2 committees:

      • A PMC (Project management committee) or Governance Committee and

      • A PTC (Project technical committee, or the Product / Tech Committee)

  • How regularly do we want to release code?

    • We want to keep this fairly ‘controlled’ as we most of the collaborators have to balance core product / platform development with non-core work that may be more client facing. We therefore want to determine at what pace code is reviewed and released and are opting for a not-so-aggressive approach in terms of code releases

3. Roles And Responsibilities

3.1 Users

Users are community members who have a need for the project. They are the most important members of the community and without them the project would have no purpose. Anyone can be a user; there are no special requirements, however users typically include:

...

Users who continue to engage with the project and its community will often become more and more involved. Such users may find themselves becoming contributors, as described in the next section.

3.2 Contributors

Contributors are community members who contribute in concrete ways to the project. Anyone can become a contributor, and contributions can take many forms.

...

As contributors gain experience and familiarity with the project, their profile within, and commitment to, the community will increase. At some stage, they may find themselves being nominated for committership.

3.3 Committers

Committers are community members who have shown that they are committed to the continued development of the project through ongoing engagement with the community. Committership allows contributors to more easily carry on with their project related activities by giving them direct access to the project’s resources. That is, they can make changes directly to project outputs, without having to submit changes via patches.

...

A committer who shows an above-average level of contribution to the project, particularly with respect to its strategic direction and long-term health, may be nominated to become a member of the PMC. This role is described below.

3.3.1 How can you become a committer?

Anyone can become a committer; there are no special requirements, other than to have shown a willingness and ability to participate in the project as a team player. Typically, a potential committer will need to show that they have an understanding of the project, its objectives and its strategy. They will also have provided valuable contributions to the project over a period of time.

3.3.2 Seeking Approval after Making a Contribution

This process is known as a commit-then-review process. It is more efficient to allow trusted people to make direct contributions, as the majority of those contributions will be accepted by the project. The project employs various communication mechanisms to ensure that all contributions are reviewed by the community as a whole. By the time a contributor is invited to become a committer, they will have become familiar with the project’s various tools as a user and then as a contributor.

3.3.3 Committer Nominations

New committers can be nominated by any existing committer. Once they have been nominated, there will be a vote by the project management committee (PMC; see below). Nominees may decline their appointment as a committer. However, this is unusual, as the project does not expect any specific time or resource commitment from its community members. The intention behind the role of committer is to allow people to contribute to the project more easily, not to tie them in to the project in any formal way.

3.3.5 Committer Voting

Committer voting is one of the few activities that takes place on the project’s private management list. This is to allow PMC members to freely express their opinions about a nominee without causing embarrassment. Once the vote has been held, the aggregated voting results are published on the public mailing list. The nominee is entitled to request an explanation of any ‘no’ votes against them, regardless of the outcome of the vote. This explanation will be provided by the PMC Chair (see below) and will be anonymous and constructive in nature.

4. Contribution Process

Anyone can contribute to the project, regardless of their skills, as there are many ways to contribute. For instance, a contributor might be active on the project mailing list and issue tracker, or might supply patches. The developer mailing list is the most appropriate place for a contributor to ask for help when making their first contribution.

5. Contribution Types

The various ways of contributing are described in the tables above, although the types of contribution are not limited to these examples. More contribution types may come to the fore, as the needs of the community and the project expands and grows. The current types of contribution include:

  • Strategy and Direction-setting

  • Evangelising and Marketing

  • Software Design And Implementation

  • User experience

  • User support

  • Quality Assurance

  • Graphics And Art

  • Documentation

  • Language communities

  • Monetary donations.

6. Chair

The Project management committee (PMC) Chair is a single individual, co-founder and CEO of Ona - Matt Berg. Once someone has been appointed Chair, they remain in this role until he chooses to retire, or the PMC casts a two-thirds majority vote to remove him.

The PMC Chair has no additional authority over other members of the PMC: the role is one of coordinator and facilitator. The Chair is also expected to ensure that all governance processes are adhered to, and has the casting vote when the project fails to reach consensus.

7. Committees

OpenSRP has 2 committees that resort under this Governance Structure:

...

This document will highlight the Standing Operating Procedures (SOPs) of the PMC. There is a separate document around the SOPs for the PTC.

7.1. The Project Management Committee (PMC)

The project management consists of those individuals identified as joint ‘project owners’. The PMC has additional responsibilities over and above those of a committer. These responsibilities ensure the overall smooth running of the project.

7.1.1 Mandate of the PMC

PMC members are expected to:

  • participate in strategic planning and direction setting of the project,

  • approve changes to the governance model

  • manage the copyrights within the project outputs

  • Vote on acceptance of new committers to join the community

  • Make final decisions if no community consensus is reached

  • Manage the project’s private mailing lists and it’s archives (holding possibly sensitive information such as votes for new committers, legal matters, etc)

  • Attend an annual strategic planning meeting (ideally face-to-face)

  • Attend quarterly update / progress meetings (virtually)

7.1.2 Membership of the PMC

Membership is by invitation from one of the existing PMC members. A written nomination must be addressed to the Chair, and will result in discussion and then a vote by the existing PMC members. PMC membership votes are subject to consensus approval of the current PMC members.

7.1.3 Tenure of the PMC

PMC members have a tenure of one year and are committing to serve in this capacity for one calendar year post the constituting of the committee. Once that one year lapses, existing members can either:

  • Opt to extend their tenure by another year,

  • Nominate a new member to join the PMC, or

  • Tender their resignation from the committee

7.1.4 To Nominate a Member of the PMC

Please send your nomination, containing the following information:

  • Name and surname of the nominee

  • Title of the nominee

  • Organisation/ Affiliation of the nominee

  • A short 1-2 paragraph motivation - i.e. why do you think they should be a member of the PMC

8. Decision Making Process

Decisions about the future of the project are made through discussion with all members of the community, from the newest user to the most experienced PMC and PTC members. All non-sensitive project management discussion takes place on the project contributors’ mailing list. Occasionally, sensitive discussion occurs on a private list.

In order to ensure that the project is not bogged down by endless discussion and continual voting, the project operates a policy of lazy consensus. This allows the majority of decisions to be made without resorting to a formal vote.

8.1 Lazy consensus

Decision making typically involves the following steps:

...

For lazy consensus to be effective, it is necessary to allow at least 72 hours before assuming that there are no objections to the proposal. This requirement ensures that everyone is given enough time to read, digest and respond to the proposal. This time period is chosen so as to be as inclusive as possible of all participants, regardless of their location and time commitments.

8.2 Voting

Not all decisions can be made using lazy consensus. Issues such as those affecting the strategic direction or legal standing of the project must gain explicit approval in the form of a vote. Every member of the community (including the members of the PMC) is encouraged to express their opinions in all discussion and all votes. However, only project committers and/or PMC members (as defined above) have binding votes for the purposes of decision making.

8.2.1 Voting Process

If a formal vote on a proposal is called (signaled simply by sending an email to the whole mailing list, with ‘[VOTE]’ in the subject line), all participants on the project contributors’ list may express an opinion and vote. They do this by sending an email in reply to the original ‘[VOTE]’ email, with the following vote and information:

...

However, only some members have binding votes for the purposes of decision making: in this case - the members of the Project Management Committee (PMC) have such binding votes.

8.2.2 Responsibilities of the PMC in terms of the Voting Process

The primary responsibility of the PMC is to ensure that the opinions of all community members are considered.

...

  • Those who don’t agree with the proposal and think they have a better idea should vote -1 and defend their counter-proposal.

  • Those who don’t agree but don’t have a better idea should vote -0.

  • Those who agree but will not actively assist in implementing the proposal should vote +0.

  • Those who agree and will actively assist in implementing the proposal should vote +1.

8.2.3 Types Of Approval

Different actions require different types of approval, ranging from lazy consensus to a majority decision by the PMC. These are summarised in the table below. The section after the table describes which type of approval should be used in common situations.

Type

Description

Duration

Lazy consensus

An action with lazy consensus is implicitly allowed, unless a binding -1 vote is received. Depending on the type of action, a vote will then be called. Note that even though a binding -1 is required to prevent the action, all community members are encouraged to cast a -1 vote with supporting argument. Committers are expected to evaluate the argument and, if necessary, support it with a binding -1.

N/A

Lazy majority

A lazy majority vote requires more binding +1 votes than binding -1 votes.

72 hours

Consensus approval

Consensus approval requires three binding +1 votes and no binding -1 votes.

72 hours

Unanimous consensus

All of the binding votes that are cast are to be +1 and there can be no binding vetoes (-1).

120 hours

2/3 majority

Some strategic actions require a 2/3 majority of PMC members; in addition, 2/3 of the binding votes cast must be +1. Such actions typically affect the foundation of the project (e.g. adopting a new codebase to replace an existing product).

120 hours

8.2.4 When Is A Vote Required?

Every effort is made to allow the majority of decisions to be taken through lazy consensus. That is, simply stating one’s intentions is assumed to be enough to proceed, unless an objection is raised. However, some activities require a more formal approval process in order to ensure fully transparent decision making.

...

Action

Description

Approval type

Release plan

Defines the timetable and actions for a release. A release plan cannot be vetoed (hence lazy majority).

Lazy majority

Product release

When a release of one of the project’s products is ready, a vote is required to accept the release as an official release of the project. A release cannot be vetoed (hence lazy majority).

Lazy majority

New committer

A new committer has been proposed.

Consensus approval of the PMC

New PMC member

A new PMC member has been proposed.

Consensus approval of the community

Committer removal

When removal of commit privileges is sought.

Unanimous consensus of the PMC

PMC member removal

When removal of PMC membership is sought.

Unanimous consensus of the community

9. Support

9.1 Providing Support

All participants in the community are encouraged to provide support for new users within the project management infrastructure. This support is provided as a way of growing the community.

9.2 Seeking Support

Those seeking support should recognise that all support activity within the project is voluntary and is therefore provided as and when time allows. A user requiring guaranteed response times or results should therefore seek to purchase a support contract from a community member. However, for those willing to engage with the project on its own terms, and willing to help support other users, the community support channels are ideal.

11. Conclusion

A clear and transparent governance document is a key part of any open development project. This model is for a meritocratic, consensus-based project. It defines the rules of engagement within the community and describes what level of influence a community member can expect to have over a project. In addition, it enables members to decide their level of involvement with that community. In the case of a meritocracy, it also provides a clear way to contribute and a highly visible reward system.

...