Transition: Bootstrapping Subproject Councils#
This document outlines how Subprojects initially formed their councils, as part of the transition to the Jupyter governance model in December 2022.
As the new Jupyter governance model is approved and implemented, we are moving from an informal Subproject governance model to a formal model. As part of this process, each Jupyter Subproject will need to establish a formal Subproject Council as its decision-making body, including deciding its size and who its members are. There are a number of challenges associated with this:
Most Subprojects do not currently have a well-defined decision process or decision-making body.
There is a wide range of Subproject community sizes and activity—some have only a few contributors and infrequent commits, while others have dozens of developers and daily activity.
We are proposing to establish new Subprojects for certain areas of Project Jupyter (or combining related areas) that do not have an existing history of informal governance.
The new governance model and decision-making guide is designed to support large, highly participatory councils. As such, even Subprojects that have a clear decision-making body today may wish to increase the size of that body to include more contributors.
We wish to avoid each Subproject having layers of meta consensus or voting to establish very different processes for electing their council.
We wish to involve the current Steering Council in forming Subproject Councils.
We propose the following framework for Subprojects to establish and bootstrap their formal councils. This framework is a suggested process and guiding set of principles that can be adapted to a particular Subproject’s existing circumstances. The Governance Working Group will be available to meet with any Subproject to openly discuss how the Subproject can best use and adapt these ideas to their existing structure and needs.
The overall principle of this framework is to gradually grow the council from a trusted, respected, and well-defined group. The process we propose is:
Jupyter Steering Council members will sign up to each Subproject in which they wish to be on the council. This forms the initial council for each Subproject.
The Subproject Council uses the new Decision-Making Guidelines and the principles below to decide if the next action should be: A. Electing a single new member to the council, in which case the process proceeds to step 3, or B. Stopping electing members, in which case the council is complete and the process ends.
The current council elects a single new member using the Decision-Making Guidelines and the principles below, thereby increasing the council’s size by one, and proceeds to step 2.
The bootstrapping process should observe these principles:
To address issues of multi-stakeholder governance, during the process above, successively elected members in step 3 should rotate across different organizations to avoid overrepresentation of a single organization in a stage of the process.
Subproject Councils should be inclusive and as large as necessary to give voice to contributors who are actively working on the Subproject or working group. This should be evaluated in both steps 2 and 3 of the process above.
This process has the following characteristics:
By seeding each council from the current Steering Council, we start each process from a clear starting point.
By gradually increasing the size of the council one person at a time, the power implicit in this election process is gradually distributed over a larger group of people.
At each stage where the new council is considering adding a new person, they can also choose to stop electing additional members. This allows the group to decide on the overall size in an organic, gradual manner.
At each step, issues of diversity and inclusion of the council are considered.