Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚨 PROCESS CHANGE: Merging some working groups and committees to better reflect current contributor engagement #1549

Open
cardil opened this issue Mar 29, 2024 · 8 comments
Labels
kind/proposal Issues or PRs related to proposals.

Comments

@cardil
Copy link
Contributor

cardil commented Mar 29, 2024

Background

Currently (March 2024), the project consists of the following working groups: Serving, Client, User Experience, Eventing, Functions, Operations, Productivity, Security, and two committees, the Steering Committee, and the Technical Oversight Committee.

This governance schema is inherited from the days where the commitment of full-time maintainers and their parent companies was far larger (as for an example, see the Knative 2019 Annual Report).

Considering the current commitment of full-time maintainers and their parent companies, one might say this governance is too laborious. At least, some WGs have a hard time getting a quorum. This fact makes it hard to contribute, as decisions and reviews take longer than they could. Even if a WG can do its work, despite having only one or two members, it could easily make decisions that could later be opposed when released to the wider community.

Proposal

The general suggestion is to limit the number of project governing bodies to ensure a quorum, and their decisions can be treated as final. How to get there, is an open question.

Below, I'm listing a couple of ideas, which at least some of them do not exclude the others.

Split TOC into Steering and Productivity

By merging TOC and Steering committees, we can have more flexible project governance, which could focus primarily on project direction and the health of the other working groups.

The technical aspects of TOC should be moved to a WG, probably something very close to the current Productivity WG, making it both more effective and more attractive.

Join up Client and Functions as CLI

The client suffers from a lack of contributors, which, I think, is a direct result of having a plugin architecture. There are a couple of plugins, of which the Func is the largest and has the most involvement. I think it makes sense to merge the Client and Functions WGs, since they both end up focusing on the same thing - CLI for Knative - and they have plenty of common topics. This also gives other plugins a place to thrive and a place to discuss.

Fold low engagement groups (Security or Operations) into one body

Some groups, like Security or Operations, despite being both relevant and important for the project, get minimal involvement nowadays. Both of these groups, in addition to long-term development, have tasks that come up from time to time. Therefore, I believe that including them in a single technical body should not cause congestion. Instead, it will allow for a quorum, faster response in the project, and greater awareness of contributors.

For security embargoed tasks, a separate subgroup could operate as needed.

Expected benefits

Once all or some of the proposed changes are made, the project will become a more pleasant place to work because we will reduce response time (by a larger quorum on WGs), and the decisions of the working groups will be largely final. We will also make it easier for new contributors to get started, as project management will become clearer.

I can imagine the following structure:

  • Project Steering Committee
  • Technical and Productivity Leadership WG
  • Serving WG
  • Eventing WG
  • Command Line Interface WG
  • User Experience WG

NOTE: WGs reports to the Steering Commitee.

Expected Costs

The costs are not huge, but there are some. Mostly the changes needed in the community docs and website. We should also change the Google Drive folder structure, adjust the meetings in Google Calendar and Zoom, and change the Slack channels.

It is worth adding that we should make the changes in such a way as to preserve the historical structure for ease of finding the old stuff.

Timeframe for implementation/rollout.

If planned properly, a rollout could take no more than a few days.

Are you willing to drive the process, or is this a request for help?

Yes. However, the involvement of WG leaders would be highly desirable.

@cardil cardil added the kind/proposal Issues or PRs related to proposals. label Mar 29, 2024
@cardil
Copy link
Contributor Author

cardil commented Mar 29, 2024

This might be seen as a next logical step in simplifying the project governance after #1399

@psschwei
Copy link
Contributor

+1 in general to streamlining things. Some thoughts on the main proposals:

technical aspects of TOC should be moved to a WG

This would mean the TOC is no longer elected / rotated... I think that's an aspect that we should try to preserve. I'd probably be more inclined to just merge Steering and TOC into a single governance body.

Join up Client and Functions as CLI

Would this have any impact on Functions as a top-level / core Knative project?

Fold low engagement groups into one body

If a group doesn't have enough engagement to warrant being a working group, we could also just fold the working group (with major technical decisions owned by the TOC). It could always be reactivated if interest picked back up.

@geekygirldawn
Copy link
Member

+1 to merging the TOC and Steering into a single elected governance body.

@dprotaso
Copy link
Member

dprotaso commented Apr 3, 2024

+1 to merging the TOC and Steering into a single elected governance body.

+1

I'm less inclined for TOC to take on the responsibility of working groups that have low engagement. If we can't find maintainers then my recommendation we deprecate and sunset said component/tool

@aliok
Copy link
Member

aliok commented Apr 3, 2024

@knative/steering-committee

Let's keep the upcoming TOC elections on hold.

Merging SC+TOC

I am supportive of this idea in general.

IMO, we have too many "manager"s for the current number of contributors in Knative.

I was investigating a SC+TOC merge idea in parallel and I got some feedback from some TOC and SC members that this is a good idea.

Merging SC and TOC would make the decision making process more efficient and would make the community more agile.

Currently we have 5 SC members and 5 TOC members. If we were to keep the same number of members, we would be still too many managers.

IMO, if we can have 7 members in total, that would be a good number (6 members + 1 end user chair).

The technical aspects of TOC should be moved to a WG, probably something very close to the current Productivity WG, making it both more effective and more attractive.

I am not sure about how the TOC and productivity WG are related. Can you please elaborate on this?

@nainaz
Copy link
Contributor

nainaz commented Apr 5, 2024 via email

@cardil
Copy link
Contributor Author

cardil commented Apr 5, 2024

@psschwei: If a group doesn't have enough engagement to warrant being a working group, we could also just fold the working group (with major technical decisions owned by the TOC).

This is, exactly, what I'm proposing.

If a group is disbanded, but the topic is still relevant and the project can't go without it (like infra, testing, security etc.), somebody would need to make decisions in the end. That's why I proposed to have Technical Leadership WG.

@dprotaso: I'm less inclined for TOC to take on the responsibility of working groups that have low engagement. If we can't find maintainers then my recommendation we deprecate and sunset said component/tool

Sunsetting can only happen to extensions of the project (as in the recent RabbitMQ case). It can't happen to integral parts like infra, testing, security, etc.

For those, someone still needs to make decisions. I argue that it's better to have a single body making decisions (or at least fewer of them) than to have dedicated but almost empty WGs.

@aliok: I am not sure about how the TOC and productivity WG are related. Can you please elaborate on this?

The issues the Productivity WG is trying to manage are cross-project, technical, and could have a big impact on all subprojects. That's why very often the things we discuss in the Productivity WG, but in the small community, we feel we should propose somewhere "higher". That higher body is currently the TOC. Let me give you some examples of such things: Vendorless Knative, Rename knative-sandbox github org, Hackless Go-native tools for Knative, Run tests on GKE spot instances, etc. These are just some of the tasks. In fact, most of the bigger ones in the Productivity WG have a big enough impact on the project that they should be accepted by the wider technical community.

Let me also bring up and comment on the current TOC charter:

  • Technical Project Oversight, Direction & Delivery

    • Set the overall technical direction and roadmap of the project.

      @cardil: This should be the Project Steering

    • Resolve technical issues, technical disagreements and escalations within the project.

      @cardil: This is a WG responsibility, as decisions should not be made "higher", but should ultimately be agreed upon by the community, or at worst, voted on. If agreement can't be reached, despite attempts and votes, this should be escalated to Project Steering.

    • Set the priorities of individual releases to ensure coherency and proper sequencing.

      @cardil: Coherency and proper sequencing is just a WG responsibility, priorities should go to Steering

    • Approve declaring a new long-term supported (LTS) Knative release.

      @cardil: A Project Steering, clearly. WG could advise.

    • Approve the creation and dissolution of working groups and approve leadership changes of working groups.

      @cardil: A clear Project Steering

    • Create proposals based on TOC discussions and bring them to the relevant working groups for discussion.

      @cardil: I doubt this should be a thing. Anyone can propose anything to other WGs, not just TOC, right?

    • Approve the creation/deletion of GitHub repositories, along with other high-level administrative issues around GitHub and our other tools.

      @cardil: A Steering decision. If additional manual work is needed, it should be delegated to a WG.

    • Advise the Steering Committe on conformance rules and tests that define brand use decisions.

      @cardil: Of couse a Steering responsibility.

  • Happy Healthy Community

    • Establish and maintain the overall technical governance guidelines for the project.

      @cardil: A WG can do that.

    • Decide which sub-projects are part of the Knative project, including accepting new sub-projects and pruning existing sub-projects to maintain community focus

      @cardil: Clearly a Steering responsibility

    • Ensure the team adheres to our code of conduct and respects our values.

      @cardil: Also, a clear Steering responsibility

    • Foster an environment for a healthy and happy community of developers and contributors.

      @cardil: Again, a Steering responsibility

@cardil
Copy link
Contributor Author

cardil commented Apr 23, 2024

I'm happy to see @dsimansk opened a dedicated issue for merging Client and Func WGs: #1554, as this makes this proposal already partially successful! Thanks, David!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/proposal Issues or PRs related to proposals.
Projects
None yet
Development

No branches or pull requests

6 participants