-
Notifications
You must be signed in to change notification settings - Fork 90
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
Our process for consensus is unclear and sometimes slow #761
Comments
@jrbourbeau I'd love to hear your opinion on this :) |
According to the opensource.guide, two alternatives to "BDFL" are "Meritocracy" and "Liberal contribution". We seem much closer to a Liberal contribution approach, which runs into this issue ... how to bring consensus seeking discussion to a close. I agree that formalizing a mechanism to close discussion could help maintainers and contributors become more effective at fixing bugs (there are a lot!) and developing enhancements. Could anyone essentially move to close discussion by 1) adding a "pending consensus" label, 2) clearly stating a plan, and 3) waiting until some quorum of positive emojis are added? Anyone with triage permission would have "veto" power (removing the label) to resume discussion. |
That sounds like a reasonable approach to me. In light of #760 I'm thinking something like Once we have made such a decision, we could consider the GitHub issue to be a decision record? Perhaps we add a new label to indicate a decision record is contained within? Or, the person seeking consensus is responsible for adding a decision record to the docs? |
ASF on consensus / decision-making, featuring "lazy consensus" https://community.apache.org/committers/decisionMaking.html
Sounds like a useful tool to have in our belt, and have a name for it :) |
ProposalEstablish a committee for resolving situations where consensus on technical decisions is needed. Loosely based on NodeJS Foundation's base contributing policy outlined in this blog post: https://medium.com/the-node-js-collection/healthy-open-source-967fa8be7951 I don't know where it lives now, but the link from the blog post is dead :) Technical Committee processWhen anyone is unclear about a decision, e.g. removing Poetry, they raise that issue to the Technical Committee. Technical Commitee is notified by applying a label The Technical Committee uses "consensus seeking" to make decisions. We seek a resolution that nobody objects to. In rare cases where no resolution can be found without open objections, then a majority vote is called as a last resort. The Technical Committee seeks to operate with a light touch. It is not expected that the Technical Committee will completely resolve every issue. It may provide suggestions to contributors on how to reach consensus themselves. Registering objectionIt's important that when someone objects to a proposal that they make their objection explicit in a timely manner so that nobody perceives consensus when there is in fact not consensus. It's equally important to withdraw objection explicitly and in a timely manner when all concerns have been addressed. The Technical Committee will establish a time period for objections depending on the urgency, consequences, and availability of technical committee members. This will also be decided by a consensus-seeking process. It's turtles all the way down. TODO: Do we need a minimum time period, e.g. 24 hours? Technical Committee membersMembers can be added at any time. New members are added to the committee by standard consensus seeking process. TODO: Perhaps maintainers are also TC members? |
This looks reasonable to me. I guess my only question is how to determine that "nobody objects to" a resolution. I am wondering how to distinguish between no objections by "lazy consensus" and no objections because one or more members of the technical committee are in the field and do not have internet access or are on a 14 day silent meditation retreat. |
@andypbarrett made some tweaks, what do you think? |
I think that's good |
I really like this proposal @MattF-NSIDC . What do you think about sharing this as a group at the hackday next week? I'm also wondering about the committee "membership" process. It could make sense to at least start out, by default, with the maintainers but perhaps there should be an explicit agreement to join (that way there is a shared understanding of the expected role). And, what about non-technical decisions? Like, a new structure for our user docs? Parameter naming (like the example I linked on #770)? I wouldn't want to discriminate between something not being "worthy" of this committee if it's not a super technical topic. |
💯
💯
Yeah, perhaps "Technical Committee" isn't the best choice of name! I just kind of stole it from the original source without thinking about it 😬 |
It's not necessarily a bad name! As long as it's clear that the scope concerns all/any decisions that need community consensus. I suppose we could call it "Decision Committee" to be explicit but I think it's fine as is. Do we need a committee decision on the committee name!? This is getting meta. 😆 |
I like something that's more intuitive from the name, so Decision Committee sounds great to me :) |
"Decision Committee" would be unique as most committees fail to make decisions ;) |
@asteiker would you mind transferring the notes from today's hackathon doc into this issue? The important takeaway is our next step will be to take this work to a Pull Request :) |
Notes from today's Hackday discussion with @andypbarrett: Decision committee should not be required for all issues. Committee should jump in when there are:
When to use the needs-consensus label:
What is the time period where we need the committee to act, and to register any objections:
Other example with end-user impact (breaking changes) and some disagreement in the community and strong opinions on how to move forward: #770
How do we document committee members and requests to join:
Suggestions or questions on proposal:
NEXT STEPS:
|
We have some questions that have been open for a while, for example, what do we do about Poetry? #374
Personally, I don't know when we've reached consensus and can safely get going on the work. We have a lot of opinions to take in to account. What should our process be? What is the official channel that people should look to if they want to stay in the loop on decisions and make their voice heard? How do we unambiguously represent our vote? How long do we wait? How many / what ratio of people need to agree before we declare "consensus"?
How do we record our decisions? (Decision records! Decision records! 🎉 )
Personal opinion: We should avoid a "BDFL" role, but a designated tiebreaker to keep us from getting stuck on trivial things might be good (with the caveat that not all ties necessarily need to be broken in a timely manner, depending on the problem being solved).
The text was updated successfully, but these errors were encountered: