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

charter: add TSC membership terms, mandatory mediation, and removal requirements #318

Closed
wants to merge 14 commits into from
85 changes: 77 additions & 8 deletions TSC-Charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,27 @@ approved by the Board.

## Section 4. Establishment of the TSC.

TSC memberships are not time-limited. There is no maximum size of the TSC.
The size is expected to vary in order to ensure adequate coverage of important
areas of expertise, balanced with the ability to make decisions efficiently.
The TSC must have at least three members.
TSC memberships are for one year terms that must be recertified. Motions for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One year from... date of original addition / last recertification?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intention is all at once, once per year.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intention is all at once, once per year.

I'm not going to expend a lot of effort trying to change this, but I'll say that I'd prefer it be rolling so that there is a rhythm. "What two or three people need to be recertified this month? And who is up for recertification next month?" instead of "Oops, did we go two-and-a-half years without recertifying anyone again?" (Sort of what happened with the TSC Director/Chair position at last once, no?)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer 2 year terms.

recertification are automatic and require a vote. Members are recertified if a
simple majority of TSC members vote in favor of recertifying the individual as
a TSC member. Such members will continue through the next year's term.
Individuals failing recertification may return to the TSC after no less than
six months following normal TSC motion.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the TSC member's own vote count in recertification?

How is a tie in a recertification vote resolved?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A tie would be less than simple majority so the individual would not be recertified.

No, their vote for themselves wouldn't count. I can clarify that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there precedent for one's own vote for oneself not counting in other processes? With most board voting the vote for oneself, if you have the right to vote, counts.


There is no maximum size of the TSC. The size is expected to vary in order to
ensure adequate coverage of important areas of expertise, balanced with the
ability to make decisions efficiently. The TSC must have at least three members.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest a higher number, at least 5, given the TSC’s responsibility 3 people is to few. I would also suggest to document what happens if the number falls below the minimum.

Another topic that might fit better into a follow up pull request is to require "active" members, and define what "active" means, to avoid a situation where people are voted into the board without fulfilling their responsibilities.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-1 on making the minimum five. What happens if the number falls below this is the responsibility of the Node.js Foundation Board to determine.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding "active" members, the TSC recently passed modification to the TSC Charter that includes specific guidelines around TSC member activity. Specifically, there is a minimum participation requirement already covered by the charter.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another topic that might fit better into a follow up pull request is to require "active" members, and define what "active" means, to avoid a situation where people are voted into the board without fulfilling their responsibilities.

@gr2m FYI, this section of the charter includes these minimum requirements to stay active:

In the case where an individual TSC member -- within any three month period -- attends fewer than 25% of the regularly scheduled meetings, does not participate in TSC discussions, and does not participate in TSC votes, the member shall be automatically removed from the TSC. The member may be invited to continue attending TSC meetings as an observer.

(Not saying there isn't room for improvement. Just pointing out what's already there.)


Individuals nominated to the TSC must be members of at least one Node.js
Working Group or Team at the time of their nomination and must maintain active
participation in at least one Working Group or Team throughout their term.

There is no specific set of requirements or qualifications for TSC
membership beyond these rules. The TSC may add additional members to the
TSC by a standard TSC motion and vote. A TSC member may be removed from the
TSC by voluntary resignation, by a standard TSC motion, or in accordance to the
participation rules described below.
membership beyond these rules.

The TSC may add additional members to the TSC by a standard TSC motion and vote.
A TSC member may be removed from the TSC by voluntary resignation, by a standard
TSC motion, or in accordance to the participation rules described below.

Changes to TSC membership should be posted in the agenda, and may be suggested
as any other agenda item.
Expand Down Expand Up @@ -176,10 +187,48 @@ discussion will continue.
For all votes, a simple majority of all TSC members for, or against, the issue
wins. A TSC member may choose to participate in any vote through abstention.

While the results of all votes must be made public, the actual individual
ballots cast for most votes may be made public or confidential at the discretion
of the TSC Chair. However, individual ballots for recertification or removal of
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like one member wanting it to be confidential should be enough, not depending on the chair.

TSC members must remain confidential. The names of members voting or abstaining
in all votes must be made public with a clear indication given of whether the
individual voted or abstained.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is abstaining public? Not sure I like that.


Following the completion of all votes, a public statement must be made via
GitHub specifying the results of the vote. Contextual detail about why the
vote was held, including a listing of the specific questions voted on must be
included in the statement.

Note that, in addition to requiring a simple majority vote of the TSC, all
changes to this charter are also subject to approval from the Node.js
Foundation board.

### Votes to Remove Members
Copy link
Member

@Trott Trott Aug 22, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EDIT: Much of the content of this section has been removed so I'm not sure these comments apply anymore. Striking out.

I know you worked hard on this section and it's a lot of text and I'm sure it represents a lot of thought. But I disagree with it and think it should simply be removed. Go back to the original text on the matter which was something like:

TSC members may be removed by a standard TSC motion.

I get that this is trying to address recent events, but IMO the issue there isn't that the TSC didn't know how to remove someone. The how-to-remove-someone process is actually straightforward. It's that the TSC didn't know how to deal with CoC stuff.

Removal is straightforward, at least from a mechanical perspective. If someone wants another member removed, make a motion. A discussion ensues. If consensus cannot be reached, it goes to a vote. There does not need to be misconduct for someone to be removed. Someone can be removed for any number of reasons. Maybe they are inactive. Maybe they are difficult to work with, without being malicious. Maybe they consistently cause problems unintentionally. Maybe they just have bad judgment. Maybe it's a combination of things like that, any one of which wouldn't be a big deal, but taken together make them unsuitable for the TSC.

If we want to include additional process to try to prevent a repeat of this experience, maybe focus on referring disputes to third-party mediation (by someone trained in mediation/conflict resolution, not some other member of this or another committee or even the board). And ask the Board to agree in advance that they're willing to pay for such things.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know you worked hard on this ...

That's not even a consideration for me.

I will rework this.


Should a vote to remove a member result in a tie (50%/50% split of non
abstaining participants) the matter shall be referred to a Foundation
appointed independent third party mediator for arbitration.

At any point during this process, the individual member in question, the
individuals opening the request, or the TSC Chair may request that the issue
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that even after a vote, the TSC Chair or the individual member can still request this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As currently written, yes. But that's not likely what we want so I'm open to suggestions on how to rework this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, I don't agree with this part. With this left in, the actual TSC vote can be undermined. I almost think this entire paragraph should be removed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I'd like to have a process by which the matter can at least be referred to mediation before the vote.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll work on reworking this

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It says that anyone can request that the issue be handled by a third party mediator instead of by a vote of the TSC, but it's not clear how or if that request is handled.

For example, if I'm on the TSC, but acting like a jackass, I might know that the members of the TSC are going to vote me out. In order to undermine this process, I request that it be referred to a third-party mediator, specifically because that gives me more leverage.

Does the foundation board get to say "No, that request is in bad faith, the TSC is going to vote on this"? And by what criteria would the foundation board make that decision?

I'd suggest removing this loophole. The conditions that lead to mediation should be objective and clear, and not dependent on anyone's request. Either it should always go to mediation, or only in the case of a tie, or never.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@evanlucas ... ok, please take a look now.

be referred to a Foundation appointed third party mediator for
arbitration.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(comment copied so as to not get lost in the outdated fold)

It says that anyone can request that the issue be handled by a third party mediator instead of by a vote of the TSC, but it's not clear how or if that request is handled.

For example, if I'm on the TSC, but acting like a jackass, I might know that the members of the TSC are going to vote me out. In order to undermine this process, I request that it be referred to a third-party mediator, specifically because that gives me more leverage.

Does the foundation board get to say "No, that request is in bad faith, the TSC is going to vote on this"? And by what criteria would the foundation board make that decision?

I'd suggest removing this loophole. The conditions that lead to mediation should be objective and clear, and not dependent on anyone's request. Either it should always go to mediation, or only in the case of a tie, or never.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I've been stewing on that. The ideal is that it wouldn't have to go to mediation at all. It should also be a goal to avoid having to vote. So perhaps it should be simply if consensus cannot be reached, the matter goes to mediation. The challenge with that is that it encourages members to not take a position, e.g. I don't want to deal with this so abstaining from a clear position forces mediation. I don't know how to solve this yet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will try to drudge up some language/process for this and coordinate with legal on how this needs to work.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hackygolucky thanks that will be very helpful.


All decisions regarding removal of TSC members is subject to review by the
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/is/are/

Node.js Foundation Board. While the Board will not have the ability to
overturn or vacate the decision of the TSC, the Board may issue a statement
requesting that the TSC revisit the decision and recommend that the matter be
referred to a Foundation appointed third party mediator for arbitration.

All decisions regarding removal of TSC members is subject to review by the body
of Node.js collaborators. Should no fewer than one-quarter of the current
Node.js project Collaborators (as defined by the TSC's governance and
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this referring to Collaborators as we currently use the term or the redefined Collaborators to mean everyone in the GitHub org? The latter could be really problematic because I'd guess that between 40% and 60% of those folks aren't actually active on the project in any significant way.

contribution policies) disagree with the TSC vote, the matter shall be referred
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it your expectation that that means "collaborators" will be the 100+ members of the collaborators team? Or any Node.js GitHub repo, which could amount to more like 500 people?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've got no expectation currently. What do you think would be best?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As written I think Node.js project Collaboratorsthe 500+ Org Collaborators (rather than just Core Collaborators). +1 to it meaning Org Collaborators.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we say all org collaborators we would need to have a mechanism that allows 1/4 of those to register objections which can be difficult. That's not too say we shouldn't do this, we just need a workable process

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I've removed this entire bit. The Working Group based review process defined in #319 would provide adequate coverage of this requirement.

to a Foundation appointed third party mediator for arbitration.

Once referred to arbitration, the decision of the mediator will be considered
final and binding on all parties.

## Section 9. Project Roles

The Node.js Foundation git repository is maintained by the TSC and
Expand Down Expand Up @@ -216,6 +265,26 @@ TSC.
* **Maintainer**: a Collaborator within a Core Project elected to
represent the Core Project on the TSC.

## Section 11. Escalation of Disputes and Code of Conduct Violations

Participation in the Node.js project is governed by a Code of Conduct policy
that is established by the TSC. The TSC is required to establish a policy
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this not established by CommComm?

for the enforcement of Code of Conduct issues. Any reports of Code of Conduct
or policy violations on the part of TSC members that are not resolvable through
that established policy will be referred to binding, independent third party
arbitration with a Foundation appointed mediator All TSC members, upon
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing period before "All"?

acceptance of their nomination to the TSC body, voluntarily agree to abide by
the decisions of the independent third party mediator.

## Section 12: Selection of Mediators

When it becomes necessary within the context of this charter to select a
third party mediator for arbitration, a qualified mediator shall be selected by
the Node.js Foundation Board of Directors (or an individual designated by the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We refer to the Node.js Foundation as providing the mediator, but here we state that the board is responsible for selection. Introducing the board into this statement may be unnecessary. I recommend reviewing this bit with Foundation Legal.

Board to so act on their behalf). The mediator should be trained and qualified
in mediation/conflict resolution and must not be a member of the TSC, Node.js
Community Committee, or Node.js Foundation Board of Directors.

[Consensus Seeking]: http://en.wikipedia.org/wiki/Consensus-seeking_decision-making
[Condorcet]: http://en.wikipedia.org/wiki/Condorcet_method
[Single Transferable Vote]: http://en.wikipedia.org/wiki/Single_transferable_vote