Wednesday, September 10, 2008

Are Eclipse committer elections a little too open?

Since I became a committer on Eclipse WTP project a few years ago, I have witnessed and participated in many committer elections. One aspect of the way elections are conducted struck me as somewhat problematic. Clearly having transparent processes is important to an open source community, but I wonder if there is such thing as too much of a good thing.
In all the committer elections that I observed, I have never seen a single negative vote. That somewhat defeats the point of having an election in the first place. As you can imagine, I have a theory for why negative votes don't happen and I am curious if other people agree with my observations...
Consider that a nominated contributor likely knows a few existing committers on the project in other ways than just interactions over past contributions. Perhaps the nominee works for the same employer. These committers might have a vested interest in getting the nominee elected. Then suppose, you have another committer on the project who has a real objection to the nominee getting elected. What options does this committer have? He can vote his true opinion and likely face retribution from other committers on the project (thus making it more difficult for him to work on the project). He can bite his tongue and abstain. Or he might actually feel compelled to vote +1. Since voting record is visible, he might feel that even abstaining would jeopardize his working relationship with other committers on the project.
I wonder if a system where only EMO knows who voted how and public record hides the names (comments would still be shown) would create an environment for more effective committer elections?

10 comments:

More importantly, one negative vote shouldn't exclude somebody from becoming a committer. They should need to pass by at least a 75% approval. Just because one person might have an issue shouldn't exclude somebody from becoming a committer. It's already hard enough for an individual contributor to become a committer. I do believe people should voice their opinions and if they do have a concern, then a -1 is warranted, along with an explanation as to why.

As far as I know saying "no" is not that easy. One have to prepare good justification and it usually ends with PMC explaining the whole situation.To start voting, explanation is also necessary, and there should be some merit in it (he/she contributes for some time and has this and this successful things).I'd not change current system.

A no vote definitely requires a reasonable justification. I tend to think of committer voting process as similar to a job interview. Some people get the interview (aka the nomination) and some subset of those get the job (aka elected as committer).

Consider the situation where someone with a track record of mediocre contributions is nominated. Someone who did contribute numerous patches, but those patches required significant re-work by committers before being acceptable. In that case, I would argue that it is reasonable to encourage that individual to continue the contributions, but to not give him the keys to the repository (at least not yet).

Since conflict of interest induced by the employment situation can factor into the nomination as well as +1 voting, it follows that only a system that allows people to effectively express their -1 votes provides the necessary safeguards.

Committer elections are not like job interviews. Elections are not open to anyone on the street. Trusted members of the community (i.e., other committers) must nominate someone. So by default the nominee starts off on the positive side of things. The elections are really there as a check/balance so that there is a community awareness and opportunity for discussion.

For the record, PMCs can and do reject the election of committers. This generally happens when there is insufficient evidence of contribution for the nominee.

In many cases of potential controversy the issues are worked out before it even comes to a vote so the vote ends up being the positive formalization.

In response to Jeff's comment, if the actual election is a rubber-stamping process (which is certainly the way I've seen it function) and the real power to approve / reject is in the hands of the PMC, why have elections at all?

The answer is that is that PMC isn't in position to know everything there is to know about nominee's record and the committer doing the nomination may have a conflict of interest. By having all committers on the project have a say we make sure that it is less likely that problems that escape PMC's attention fall through the cracks. My contention is that this check is made rather ineffective due to the way that elections are administered.

The thought of private vetoes turns me cold. It's the perfect vehicle for political backstabbing with no need for any associated public justification. I can't imagine that working well.

As Jeff points out, in order to be nominated in the first place, there are required to be strong grounds. PMCs can and have enforced this requirement. I've talked with Bjorn about a specific instance of that where it's became clear that the requirement for justifiable grounds needs to be enforced at the start of the election; perhaps the election itself should be approved before it proceeds, rather than the PMC vetoing the results of an election after it's finished. In the end, I don't feel it's the PMC's place to subvert the express will of the committers. It's problematic that the PMC isn't currently notified until the election is over; something that will be fixed.

While I can see Dave's point that vetoes have a problematic aspect---one individual can block the process---I feel that the ability to veto new committers empowers individuals. It ensures that the committers as group remain cohesive and must reach consensus rather than creating voting blocks that can overpower other blocks. "If we can just vote in one more member, then we can take complete control and can add anyone else we like to further entrench our voting block."

I am a complete supporter of requiring all negative votes to be fully justified. Any negative votes that are not sufficiently justified should be discounted. This should prevent political backstabbing fear that Ed speaks of and should be true whether or not identities of the voters are disclosed.

As I said before, the problem with relying too much on PMC vetting of potential committers as the primary vehicle for disqualification is that often only positive evidence is brought to PMC's attention. We need to empower individual committers to be able to vote their true opinion without fear of retribution or we might as well disband the elections.

PS: I am in full agreement with Ed that PMC vetting should precede the committer vote. The PMC should make sure there that there is sufficient basis for a nomination and committers get a chance to veto it if appropriate justification can be presented. In fact, in a way, the positive committer votes don't matter that much and really only serve as "welcome to the group" messages. The votes that are really important to health of the process are the negative ones.

As my grandmother used to say, "If you can't say something nice about someone, don't say anything at all". :)

But, seriously, I think if someone can not say something publicly, it certainly wouldn't be worth a veto!So, what's gained by saying it at all?

I think maybe we just shouldn't call it a "vote" ... it is more like a confirmation ... just a way to document something that should already be fairly obvious to those already working on the (sub) project. And, what good is a formal confirmation is there not the possibility of a formal rejection.

I feel like I may be missing some details about some people's personal experiences (or point of view) since I don't really see any the problems that are being hinted at ... such as by "conflict of interest".

I will add, though, as both a Project Lead and PMC member, that people often discuss with me what's appropriate, and what's not ... and I sometimes initiate that discussion if I feel someone is being "overlooked". Also, maybe it's one of the undocumented secrets of Eclipse ... but there are sometimes "private" discussions or emails about "personnel issues" which is how it should be, to protect the personal privacy of all those involved. And, yes, there's been a few cases I'm aware of that were stopped before they were started -- usually, as Jeff says 'just not enough yet' followed up by coaching/mentoring on what it means to be a good committer.

Of course, it's not a perfect system, I'm sure. But, by all means, Konstantin, if you have specific concerns about some WTP votes ... feel free to email me! :)

I agree with this post. I think it raises a very important and subtle issue around social pressure. It's power should not be under estimated.

For example, not everyone feels comfortable raising their objections publically. Someone may be conflict adverse, yet may have important information which could affect a committer's candidacy. I think we shouldn't confuse their hesitancy at speaking out publically with the legitimacy of their point of view. Not everyone is as outspoken as say Ed :)

Thankfully it probably turns out that in practice few poor candidates are brought forward because when someone proposes a new committer they know that *their* reputation is on the line. So here the social pressure is working to the positive. Still though the voting, as this post suggests, is then just a formality.

Making a discussion public changes the discussion, and not always for the positive.

I actually believe that we confuse open source with the notion that all processes should be transparent. Why do we believe these are connected? Even if you believe full transparency is a good thing, do you really believe its what's going on? Behind all the supposedly open processes there are private emails. And sometimes for good reason. What we really require is honesty and good judgment, where everyone has a chance to be heard (but not necessarily by all).