quick thought on “executive” and “organizational” bodies
In the last few meetings we’ve seen some crystallization around a few governing bodies within the Jupyter community. I appreciate the efforts taken to boil things down to concrete items that we can start commenting and iterating on. In the last meeting I had to jump off so I wanted to quickly write down a possible structure for others to think about.
My understanding is that we are currently working towards two organizational bodes:
the executive body would be made up of representatives from each major sub-group within Jupyter (both technical projects and non-technical projects). Members of this body are individuals, not organizations, and in a sense this body knows nothing about “where a person works”. It is up to the sub-projects to decide who their representative on the executive body will be.
The organizational body would have seats for organizational representation, through some kind of membership model. This might include paying for a seat on this organizational body, though the number of seats per organization would be capped, maybe at “1”.
We were discussing how these two bodies could interact with each other, delegate different kinds of decisions, etc. Here’s one idea:
In this case I am primarily thinking about two different things:
- how does the Jupyter project decide what it wants to or should work on
- how does it decide what to prioritize or focus its efforts on.
Currently there isn’t really a mechanism for #2 - people work on things either on a volunteer basis, or because they work at an organization that prioritizes certain kinds of features. #1 is done in a fairly heterogenous way - we have many mechanisms for making decisions, some formal and some informal. For example, there is a JEP process but it is rarely used, we have sub-communities with formal review requirements but others that do not.
So how could this situation feed into the governance refactor?
The executive body
The executive body is tasked with deciding the direction of the Jupyter project as a whole. It is made up of representatives from each of the major sub-groups, as well as a finite number of seats that represent the organizational body. The executive body defines roadmapping, scope, and the general constraints of what Jupyter “should” be working on. It makes most of its decisions after an open-comment period - its goal is not to reach consensus with the community, but to gather as much information from the community as possible in order to make an effective decision. This is only for broad, community-wide decisions (e.g., decisions that span multiple sub-projects). More specific decisions are delegated to the respective sub-communities.
note: to me this feels more like a “steering council” than an executive committee
Sub-communities have more flexibility in operating in a manner that works for their groups, with a few constraints. They must make decisions in a deliberative and “open” manner - whether that involves open issues / PRs, public requests for comments, or piggy-backing on the JEP process is up to them. This includes roadmapping and scoping features that they consider worthy of including in their projects or plans.
The organizational body
The organizational body is a membership organization that serves a few primary purposes:
- Provide a mechanism for organizations to contribute resources to the Jupyter community at-large
- Provide a space for organizations to discuss and coordinate their needs within the Jupyter project
- Provide some oversight of staff that are supported by this organizational body (e.g., as an advisory council)
- Provide a signal that can highlight the features that are valuable to these organizations, to potentially influence the roadmapping process of sub-projects (e.g., through this organizations membership on the “executive group”)
- Provide a way to prioritize paid-staff efforts within the boundaries set forth by the executive and sub-community teams.
Membership on the organizational body is attained by committing resources to the Jupyter project (e.g., $100K a year over 3 years), or through exceptions made for resources that may align with the Jupyter project’s mission (e.g., some non-profits or university groups).
In summary, the executive body and the sub-communities make all decisions about where the Jupyter project should go (though note that many organizations may have representation in sub-communities). The organizations group is a mechanism to collect information about the needs of organizations that support the Jupyter project, and to direct some of those resources towards features that have already been deemed in-scope by the executive body and sub-communities.
I’m sure there is a lot that could go wrong with the above picture, but that’s what I had in my head as we were discussing in the governance meeting ping @ellisonbg and @fperez who were the ones asking for feedback. Also curious what @lresende and @afshin think as they were both also representing the perspective of companies in this conversation