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

Suggest fairness improvements #1

Closed
wants to merge 4 commits into from
Closed

Suggest fairness improvements #1

wants to merge 4 commits into from

Conversation

lavalamp
Copy link

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.

justaugustus and others added 2 commits July 15, 2022 09:54
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
Copy link

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.

Copy link
Author

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.

Copy link

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.

Copy link

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.

Copy link
Author

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)

Copy link
Owner

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.

Copy link
Author

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)

@lavalamp
Copy link
Author

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.

@deads2k
Copy link

deads2k commented Jul 18, 2022

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.

Copy link

@detiber detiber left a 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
Copy link

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.

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"?

Copy link
Author

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.

Copy link
Author

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").
Copy link

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)

Copy link
Author

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.
Copy link

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.

Copy link
Author

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
Copy link

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.

Copy link
Author

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
Copy link

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?

Copy link
Author

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.
Copy link

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.

Copy link
Author

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.

@jberkus
Copy link

jberkus commented Jul 19, 2022

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:

  1. The SC member cannot be removed from the SC for at least two weeks, during which they may continue to use their position to harass the new contributor, and possibly others as well.
  2. This guarantees them a platform where they can post the most vile attacks on the new contributor possible, and the SC is required to share those attacks with the community, to the trauma of the new contributor.
  3. Even if the "rebuttal" isn't used that way, what would a "legitimate" rebuttal look like? "I didn't violate the code of conduct"? The CoCC already has a lengthy investigative process and considers multiple alternatives before suspension, and the CoCC process exists so that we do not have trial-by-twitter. Requiring a public rebuttal is pretty much also requiring trial-by-twitter.

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).

  1. Again, the SC member cannot be removed for 2 weeks, during which they may continue to use their position on Steering to bolster the legal case of their employer.
  2. During that 2 weeks, it's difficult for the project to plan a response to the suit because the suing SC member cannot be excluded from meetings.
  3. The rebuttal in this case can also be used to support their employer's case in suing the project, and might even be admissable in court as evidence (I don't know, I'm not a lawyer).
  4. The "cannot be removed again for 3 months" clause could also be easily weaponized in this kind of proceeding.

Case 3: the SC member has a mental breakdown, and behaves extremely erratically but won't voluntarily step down.

  1. What is the rebuttal going to look like in this case? Yes, it will "prove" that the SC member needed to be removed, but won't that be harmful to them when they someday regain their stability, and this crazed screed is forever enshrined in Kubernetes documents?
  2. Say that during the removal proceedings, the SC member tells steering that they've begun treatment and that they can return to stability. In that case, the SC would be forced to proceed with removing them anyway lest they not be able to remove them for 3 months if the treatment is ineffective.

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.

  1. How does this process even work in that case?

As you can see:

  • In many hypothetical cases of SC member removal, time is of the essence, including ones where it is critical to be able to remove the SC member in 24 hours or less.
  • If an SC member is being removed, we cannot assume goodwill or reasonable behavior from the removed member, since the lack thereof is one of the most likely reasons for them to be removed in the first place. As such, enshrining special status for a rebuttal statement in the process is simply providing them an extra platform on which to commit violations. US law doesn't let burglars rob one more house to prove they're burglars.
  • The "cannot be removed again for 3 months" clause can be easily gamed or lead to harmful outcomes, including ones that are harmful to the removed member.

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.

@lavalamp
Copy link
Author

@jberkus

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?
1.3: I am not sure what a rebuttal would look like. I don't expect the respondent to have enough information to give a good one. Note that we can't prevent them from saying whatever it is they want to say elsewhere; if anything, it's better for them to say it in a forum where we can add content warnings etc. I don't expect debating the CoCC in public to go well for anyone attempting it.

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.
2.4: I could remove that if everyone agrees the no-double-jeapordy clause is going to work correctly

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
3.2: I believe such a person should be removed anyway, if they prove their meds are working then they can be elected again in the future.

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.

@keithmattix
Copy link

keithmattix commented Jul 19, 2022

(emphasis mine)

If an SC member is being removed, we cannot assume goodwill or reasonable behavior from the removed member, since the lack thereof is one of the most likely reasons for them to be removed in the first place.

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:

  1. A unanimous vote/approval from the CoCC (a separate entity). Perhaps they simply approve the statement of no confidence PR?
  2. Public documentation of the circumstances necessitating the emergency provision as part of or in addition to the statement of no-confidence brought forth by the initiator.

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.

@jberkus
Copy link

jberkus commented Jul 19, 2022

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.

@jberkus
Copy link

jberkus commented Jul 19, 2022

Imagine a rogue majority on the steering committee weaponizing this process; any opponent is now presumed unreasonable according to this process.

I'm confused why anyone would regard having 6 "rogue" SC members as more probable than having one.

@lavalamp
Copy link
Author

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!

@lavalamp
Copy link
Author

One thing that would help a lot with proposals for more process would be to have a separate "suspension" and "removal" step

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.

@jberkus
Copy link

jberkus commented Jul 19, 2022

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!

What would that damage be? Maybe it's better to address that head-on?

@lavalamp
Copy link
Author

Maybe I shouldn't give people ideas if it's not obvious how that could be misused.

@lavalamp
Copy link
Author

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.

@lavalamp lavalamp closed this Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants