-
Notifications
You must be signed in to change notification settings - Fork 0
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
Suggest fairness improvements #1
Conversation
Charter updates including: - Membership - Define current composition of committee - Elections - Set upper bound of vacancies that may be filled via special election - Clarify the only next most preferred candidate from previous election will consider when filling vacancies - Define resignation process - Define process for removal via motion of no confidence - Voting - Clarify committee voting process - Clarify numbers required to pass committee votes, with examples - Add section for abstention - Meetings - Clarify quora for holding meetings and votes Signed-off-by: Stephen Augustus <foo@auggie.dev> Co-authored-by: Paris Pittman <paris_pittman@apple.com>
And name variables for clarity.
charter.md
Outdated
|
||
Once a vote of no confidence has been called, the committee will notify the | ||
community through the following channels: | ||
Once the charge is known to the steering committee, the initiator may create the issue, and the target may prepare a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we are going to do this (which i am not in favor of!), then i'd prefer just a link. not copying the entire contents.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just don't see any valid grounds for treating charge & response disparately. The obvious motivations are not good (presumption of guilt or desire to hide the action from the community).
It's also extra hard to police the length if we just include a link, and it is easier for charge & response to be edited separately making one look silly etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lavalamp the charge is what the steering members vote on, so it should not be edited between the time it is posted and voted on. if it does need to change the clock has to restart as it is now a different charge.
It's up to the person who wants to rebut, to do what they want, where they want, the folks making the charge should not have any control over the voice of the person who is being charged. So no policing is needed.
thanks for your input and an honest try to make this better ... but i don't think it does.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if the motivations of a big set of individuals on the steering is suspect, that's what elections are for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it should not be edited between the time it is posted and voted on
The rules should probably state this if that is the intention! (the rule-change process doesn't state this and we're obviously not following it!)
the folks making the charge should not have any control over the voice of the person who is being charged
Modulo that person needs to be able to have a voice, and it's likely the majority controls most or all of the official communication channels.
So no policing is needed.
There's (at least) two categories of bad things that can happen here -- the board can attempt to stifle the voice of the minority (by e.g. surprising them, weird timing, dragging feet on making their response visible). But if we give the minority unconditional rights, then the minority can attempt to delay the process by being slow etc. Neither is acceptable.
You've got to think like a pen tester here :)
if the motivations of a big set of individuals on the steering is suspect, that's what elections are for.
I 100% agree -- that's why my focus here is just on giving the community visibility into what is going on. Elections are the community's recourse if they don't like it. But they won't know to kick out a bad board if the board does its bad stuff without fanfare. (and likewise the community should be able to confidently reward a good board with additional terms in office)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’ve been on medical leave (and still am) but the use of the word target and charge here are not appropriate and do not approve such language. I’ve never seen anything like this in my oss career.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The specific words aren't important to me, I've just swapped out target. I don't know a good substitute for charge but I'm happy to change it to something that doesn't sound, er, charged. The words I used apparently carry some connotations that I didn't intend, I'm sorry for using distracting words.
(Also sorry about whatever has you on medical leave & that you have to deal with this at the same time)
BTW I won't be offended at all if you write your own fix for this problem. This was just intended to be an example. |
This is very close to what was in my head. Putting the charge and the response next to each other on the same page, makes for a fair and more transparent process for the community to judge the situation, provide feedback, and judge the steering committee. The version in my head would have a flow where documents are merged into the steering repo for posterity, but having the charge and response in the description of an issue can achieve fairness and transparency. We could later persist them if we desire. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some feedback on terminology used and a bit around process
charter.md
Outdated
@@ -108,7 +108,7 @@ self-elected reason, they must notify the committee in writing. | |||
|
|||
#### No confidence | |||
|
|||
A Steering Committee member may be removed by an affirmative vote of a | |||
A Steering Committee member (the "target") may be removed by an affirmative vote of a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This language comes off as quite biased in a way that would seem to benefit the "target", just as much as the "accused" would be biased in a way that would benefit the "initiator". I would recommend trying to find more neutral terms to use.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1. Perhaps "respondent"? "candidate for removal"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just needed variable names to make the rest of the new language more legible (it's super awkward to say "the person who did X" everywhere). Happy to take any term -- but single words or at least not phrases are what is needed to make the rest clear.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"respondent" is the best idea so far IMO
[repository][steering-repo]. | ||
|
||
The call for a vote of no confidence must be made by a current member of the | ||
committee and must be seconded by another current member. | ||
committee ("the initiator") and must be seconded by another current member ("the seconder"). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see a need to specifically call out either of these individuals using a specific term here, rather here it should be enough to just say that the call for a vote must be made and it must be seconded by another member.
In additional places, it should be sufficient to say that any member in favor of the action should do something. (will comment in line as well)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The issue is these people have to do other things, and it's very convenient to name the variables.
provides context on the reason for the vote. This statement must be seconded by | ||
the committee member who seconded the vote. | ||
The initiator will prepare a statement ("the charge") which provides | ||
context on the reason for the vote. The charge must be seconded by the seconder. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like any member in favor of the action should be able to prepare a statement and any additional member should be able to second the statement. I don't see any particular reason that it must be tied specifically to the person calling the vote and the person who seconded that motion.
I would also argue that "the charge" would be better named "the statement of no confidence" to be more in line with the policy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my version, the statement is what the board is agreeing to hold a vote on, and therefore it has to exist prior to the call for a vote.
It seems pretty backwards to agree to hold a vote and then back-compute a rationale?
The language is super awkward if you don't give things one-word names, every legal document I've ever seen does this presumably for this reason. I was just using "the statement" but then I lacked an easy word for the response, which is also a statement.
charter.md
Outdated
|
||
Once a vote of no confidence has been called, the committee will notify the | ||
community through the following channels: | ||
Once the charge is known to the steering committee, the initiator may create the issue, and the target may prepare a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/initiator/a member in favor of the motion/
Again, I don't see any particular need for a specific member in favor of the action being required to create the issue, but rather any member in favor of the action should be sufficient here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went with a specific member just to make it clearer what should happen and who is responsible if things aren't going well. I don't particularly care who does it, but the process will go smoother if a specific person is supposed to do it (or make arrangements for it to be done).
Once a vote of no confidence has been called, the committee will notify the | ||
community through the following channels: | ||
Once the charge is known to the steering committee, the initiator may create the issue, and the target may prepare a | ||
counter-statement ("the response"). The response may be 400 words long or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe "rebuttal" instead of "response" here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Rebuttal" is much more antagonistic to my ears, which I thought y'all were trying to avoid (especially given that you don't like the word "target"), but it is fine with me.
demarcated. If the counter-statement itself somehow is deemed close to | ||
violating the CoC, it is acceptable for the initiator to instead | ||
link to the gist and state whatever content warnings they feel are appropriate. | ||
In the case where the charge is edited: at no time may a new charge be displayed in the issue next to an old defense. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure that GitHub tracks change history on issue descriptions in a way that this could be verified.
Since the process requires editing the description of the issue in order to add a rebuttal or at the least a link to the rebuttal, having the description showing as edited seems like a way for anyone who is removed through a vote of no confidence to claim that the statement they were providing to a rebuttal to is not.the one currently shown in the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a great point, would you prefer me to switch this to David's flow (where a directory is created and artifacts from each side are merged)?
I'm actually taking the week off but if that is something that would be merged, I'd find time to do it.
As per the discussion on the main issue, I feel that these modifications don't take the possibility of removing an SC member due to CoC violations into account. And it has to, because that is going to be the single most common reason to remove an SC member. But the process outlined here seems suitable only for certain reasons for removal, and fails for many other possible reasons. So pursuing this course of "we need more process around the removal" is going to mean choose-your-own-adventure style special casing around the why of removal. Is that really worthwhile for the transparency gain? Let's give some hypotheticals: Case 1: the CoCC finds that the SC member has been privately harassing a female new contributor and using their position to discourage her from reporting it. In that case, the SC's "reason for no confidence" will be simply "Found to be in violation of the Kubernetes Code of Conduct." Here's where the process outlined in this PR fails in that case:
Case 2: the SC member is an employee of a company that is suing the Kubernetes project and/or the CNCF over intellectual property matters (this sounds farfetched, until you think about the history of Linux).
Case 3: the SC member has a mental breakdown, and behaves extremely erratically but won't voluntarily step down.
Case 4: the SC member is incapacitated and unconscious due to a medical event, and not assumed to get better in the next few months.
As you can see:
Overall, it seems like this process was written with a very specific removal case in mind, and without considering the many other reasons why an SC member might need to be removed. Removing an SC member is an exceptional event, and as such we cannot predict the potential reasons, causes, events, and necessary actions. If a written process ties the hands of the SC so that they cannot reasonably take action, we do not have a higher authority that can override that written guidance in the face of a real emergency. Consider that the current suggested process already requires a unanimous vote of 6 steering members to remove anyone. That's a sufficient hurdle, and unlikely to be used if any other course of action is available. -1 from me. |
1: presumably the CoCC won't divulge damaging private 3rd party info to the accused anyway, so the only details they can present in a defense aren't going to damage 3rd parties? 2: I think I made the timeline a max of 3 days longer in this proposal; I debated having the 3 days included in that timeline. It could be changed back. The process is abusable by some party either way, I think. 3.1: realistically such a person is going to have a hard time getting back on the board anyway; we can hide it behind trigger warnings 4: the response is optional, not required (or at least I intended it to be so, can fix if not) I actually did not have a specific case in mind when writing this, mostly because I don't expect to be able to predict when this would be used. It is true that I don't think emergencies trump transparency, because future malfeasant boards could misuse an "emergency" process. Like I said in an earlier comment, I am not particularly attached to this proposal, it's just the first thing that came to mind, and I'd be happy to see someone do it better. But the current text has zero provisions for permitting the community to judge the board fairly about this, and that doesn't seem right at all. |
(emphasis mine)
This is a scary assumption to make. Imagine a rogue majority on the steering committee weaponizing this process; any opponent is now presumed unreasonable according to this process. In general, law assumes rationality/reasonableness until proven otherwise. As far as goodwill, yes it cannot be assumed, I think it's important that we don't transitively assume ill-will. However, I don't disagree that these scenarios must be addressed. To your point @jberkus, there are many situations where time is of the essence. Would it be acceptable for the SC to establish an "emergency" via one of two avenues:
In general, yes there are situations when transparency must be sacrificed to prevent harm, but IMO, that decision should be explicit and transparent in some way. |
One thing that would help a lot with proposals for more process would be to have a separate "suspension" and "removal" step. That is, you have a vote for suspension that has no strings attached, and if that goes through the SC member can be cut off from community channels (if necessary due to the reason for suspension), and marked as suspended. Then it would be possible to proceed with a more lengthy removal process. |
I'm confused why anyone would regard having 6 "rogue" SC members as more probable than having one. |
You only need 2 SC members to start this process!! You can do a lot of damage to someone with a vote that you know isn't going to pass! |
Sure, I agree that this would be better, just that the more severe the suspension condition is, the more protections for due process are needed. But it would be a giant change from this text and I don't have time to write such a thing. |
What would that damage be? Maybe it's better to address that head-on? |
Maybe I shouldn't give people ideas if it's not obvious how that could be misused. |
53d8bf2
to
e2c68cb
Compare
It seems it's too late for this. I'm sorry I couldn't convince you all. Hopefully a future board will be able to fix these rules if they pass. |
And name variables for clarity.
Really sorry about how long this makes it. I think it might be slightly shorter if instead of an issue, a PR is created which removes the member in question and documents the charge & response, but I wasn't sure and that would be a bigger diff.