ietf
[Top] [All Lists]

Re: Review of: draft-resnick-on-consensus-05

2013-10-10 17:49:07
Finally back to this original review.

On 10/6/13 7:03 PM, Dave Crocker wrote:
In terms of philosophy and desirable practice, the draft discusses an extremely appealing model and generally explains its nature and practice well. However the draft tends to confuse what is (or has been) with what should be. This includes confusing the IETF's historical sense of what 'rough consensus' means, with what the draft suggests it mean. As a consequence, it sometimes merely explains what is preferred, rather than the problems with what is common practice. (Sometimes. At other times, it nicely makes its case.) Also it sometimes does not lay out the context for its assertions.

In effect, the draft is offering fundamental enhancements to existing IETF practice, rather than merely clarifying the ways things are "supposed to be".

I think this is a fair criticism and I will do a grand editing pass to try to tease the two apart: Where the draft is actually describing real historical practices vs. where it is describing a theory that does not comport with our practices. I know of several places beyond what you've mentioned that make the same conflation, and I think it's well worth making it clear. There are some instances where "what is (or has been)" is actually mushy: That is, people haven't really thought about it in depth. In those cases, I've definitely done a bit of saying what I think folks would mean if they were actually asked about it. (See more on this point in the discussion of the intro.) But with all of these, I think I should be more explicit about which is which.

By way of properly setting context, the draft should cite RFC 1603/3934

You mean 2418. But yes, I think you're right.

Working Group Guidelines and Procedures. Its section 3.3 has text that describes long-standing community views on the meaning of rough consensus, which don't quite align with what the draft puts forward:

               In general, the dominant view of the
   working group shall prevail.  (However, it must be noted that
   "dominance" is not to be determined on the basis of volume or
   persistence, but rather a more general sense of agreement.) Consensus
   can be determined by a show of hands, humming, or any other means on
   which the WG agrees (by rough consensus, of course).  Note that 51%
   of the working group does not qualify as "rough consensus" and 99% is
   better than rough.  It is up to the Chair to determine if rough
   consensus has been reached.

Yup. I think this document has to cite that statement in 2418, and it has to disagree with it, at least to the extent of claiming it is an over-simplification. I had intended to do so and simply forgot. That 51%/99% statement actually leads down the path that the document wants to discourage.

The disparity between that document's text and what this draft describes should not be a problem for what the draft is recommending, but merely requires changing the explanatory tone of the draft and how it makes its case.
[...]
The changes being suggested to the draft are substantial, but will not affect the essential points for which the draft is lobbying.

I agree, though I think the changes are actually pretty straightforward. Maybe substantial in number of actual edits, but not in essential content.

Abstract

   a "majority rule-> a "simple majority rule"

Majorities come in different forms or degrees and the fact that 'rough consensus' is often taken to mean 67% or 75%, as a rule of thumb can make this confusing.

From what you've written, your basic point seems to be that 51% isn't enough; it's worth making that explicit.

Setting aside the possible confusion in British usage, I don't think you understood my intention here. And since you and Christopher and Jaap ended up in the same place, I'm happy to say that it's my fault for not being clear enough.

I intended that the abstract simply summarize the document's *purpose*, not its conclusions. I was using it like the abstracts that appear on scientific papers. Of course, the abstracts on our technical specifications usually give away the punch line, which is what we're used to seeing. I'll have a go at an edit, at least to clarify what I'm doing.

For example, "voting" can be done with models that give quite a bit of power to minorities. So, you need an explicit, direct, early statement that asserts the nature and importance of "rough consensus" factoring in minority views.

This is an abstract, not a place to put early statements. I think the kind of statement you're looking for goes in the intro, which I hopefully address below.


1.  Introduction
[...]
That is, our credo is that we don't let a single individual make the

As the draft phrases it, that isn't really true. We let individuals make decisions all the time. What I believe the aphorism is saying -- and what reflects our community belief -- is: We do not assign to any one individual the authority to /dictate/ a decision. ("make" is too soft a word for this point, IMO.)

Fair enough.

   decisions, nor do we let the majority dictate decisions, nor do we

I believe the model being pursued in this draft -- of the nature and essential importance of properly dealing with minority views -- is hugely powerful and appropriate. But I believe it has never been a prevalent view in the community, including back when the aphorism was seeking to summarize the community view.

Yes, I think this all goes to your earlier point of cleanly distinguishing between historical view and new theory.

The language I remember from the 90s primarily distinguished "strongly dominant majority" from 51% or 67% or 75%. That is, it was about imprecise nature of the required clear and strong majority, rather than the moderating role of the minority. Very occasionally -- but only occasionally -- we would use language that was along the lines of "strongly dominant view, with no vigorous and coherent opposition".

When I started having conversations about the draft with folks, especially people who've been around quite a while, I was struck by the number of times the discussion started with, "No, that's not what we meant", but ended in, "Oh, yes, in those extreme cases, that's exactly what we meant." That is, I think the "51% is not enough, but 99% is more than enough" view was certainly in the front of people's minds, but when probed about the implications of that, almost everyone came to the same conclusion as the document: 51/99 is often a good rule of thumb if one wanted to guess about the consensus based on numbers of people, but it's still reasonable to call certain outcomes (like the ones described in the document) "rough consensus" even if the views of a huge majority might not win the day.

But it is certainly fair to say that in the 90s, few of us would have independently articulated the idea that a 90% majority might not be rough consensus.

That latter part probably should be seen as a crude version of what the draft is seeking to discuss, but I believe it was never consistently voiced or understood.

In other words, I think the role of minority views that the draft is putting forward is not a mere clarification and refinement to the existing IETF model, but rather is a significant enhancement. So its premise about the potential importance of minority views does have some historical hooks in the IETF philosophy, but not as much as the draft seems to assert.

Yep. I hope I can edit to make that clearer.

   allow decisions to be made in a vacuum without practical experience.

Again, this statement goes beyond actual practice. The language here prohibits decisions without experience and of course, the real IETF has always indulged in some decision-making based on theory that lacked practice. We /prefer/ experience. We /value/ the input it provides. But we are perfectly capable of making decision in a vacuum.

Remember that I'm saying what the "credo" says, not how tightly we adhere to it. How well we stick to it is talked about later. I think we do take as a principle that we want to base decisions on running code. We certainly don't always do so.

   Instead, decisions are made by (more or less) consent of all
   participants, and the actual products of engineering trump
   theoretical designs.

"Consent of all"? Hell no. Not even close, as your following text already note.

Again, here it is stating what the credo says, not the specifics of what we do (or even mean to do) in practice.

[Compare: Person A: "The US Constitution says, 'Congress shall make no law...abridging the freedom of speech.' Our credo is that the government will not limit speech." Person B: "But that's not true. The government limits all sorts of speech." Person A: "Never said it didn't. I said what the credo was. I will talk at length in a moment about how the government does and does not adhere to the credo, and how some of that is fine and still inline with our overall principles, and how some of it is problematic, and how they can do things that are less problematic."]

This is the Introduction. It's setting up the bigger picture. It's not the place to say, "The details are complicated"; of course they are.

   Our ideal is full consensus, but we don't
   require it: Full consensus would allow a single intransigent person

     Full consensus would allow
     ->
     Requiring full consensus gives each person a veto, by allowing

Right. I'm inclined to skip the "veto" language, but I will definitely edit.

   who simply keeps saying "No!" to stop the process cold.  We only
   require rough consensus: If the chair of a working group determines

Again, this seems to conflate two points. Both are extremely important. Both need to be discussed. But not intermixed.

One is that we do not require everyone to agree, as long as there is a strongly dominant group that do agree.

The other is that all concerns must be diligently considered, but do not have to be thoroughly resolved. 'Diligently considered' is an imposition on the entire group but it is mandatory. 'Not thoroughly resolved' is acceptable when the strongly dominant group agree that it is acceptable.

All true, but that discussion is not appropriate to the Introduction. The distinction between the two points is discussed at length later.

   that a technical issue brought forward by an objector has been truly
   considered by the working group, and the working group has made an
   informed decision that the objection has been answered or is not
   enough of a technical problem to prevent moving forward, the chair
   can declare that there is rough consensus to go forward, the
   objection notwithstanding.  To reinforce that we do not vote, we have

"To reinforce" switches from discussing the handling of minority concerns about voting. At a minimum, break the paragraph.

Done.

   also adopted the tradition of "humming": When (for example) the chair
   of the working group wants to get a "sense of the room", instead of a
   show of hands, the chair asks for each side to hum for or against a
   question.

The draft has historically drawn a strong distinction between hands and hums. It's an interesting distinction, and well might be useful, but I believe it has not been a universally-shared distinction in the community. It essentially relies on a theoretical analysis of differences in psychological effects, but there's no objective basis for validating the one really is superior to the other.

And the draft says as much. See section 4, paragraphs 3-5. This is discussed at length. I don't see what's missing from here.

   More and more
   frequently, people walk away from working groups, thinking that
   "consensus" has created a document with horrible compromises to
   satisfy everyone's pet peeve instead of doing "the right thing".
   None of these things are indicators of a rough consensus process
   being used, and are likely due to some basic misperceptions.

Is the issue their perception, or the fact that horrible compromises are actually being done? From the text, I can't tell what point is intended.

Here, it's only about the perception. I talk about the real problems with compromises at the end of section 2.

     it is not intended to dictate ->  it does not dictate

Will fix.

2.  Lack of disagreement is more important than agreement

The substance of this section has an important focus and makes useful comments.

However the title could be taken to cover such things as failure to gain affirmative support.

I don't intend any of my section titles to be complete and precise. If folks really don't like that, I can go about changing them, but I'd really rather not.

... Consensus is not when everyone is

par break at start of sentence.

Sure.

And possibly move this and the remaining sentences higher up, since they voice the essential point of the section. In other words, try to start with the premise so that folks are oriented, and then explain it.

I know this is apropos of a conversation we're having offline, but I do believe that people can get through the example of the problem before we tell them what the solution is.

Here's a suggestion for some re-casting to this separate paragraph, to help the reader bit, with the draft's logic and meaning:

Engineering always involves a set of tradeoffs. The process of gaining agreement about tradeoffs is the essence of a good rough consensus effort, and requires distinguishing the group debate and compromise needed to _come to_ consensus, the chair's process of _determining_ (or assessing) consensus, and the final point of the group's _having_ consensus on it choices.

Did you intend for that to replace something or just to insert it? I think it works well inserted, but if you meant something to be deleted, please clarify.

   However, there is another sense of "compromise" that involves
   compromising between people, not engineering principles.

This seems to argue that political compromise is never acceptable. That's not realistic. Folks often can "live with" unresolved concerns. The meta-issue is distinguishing disagreements about key points versus disagreement about minor ones. Political compromise about a flat vs. hierarchical namespace is a rather different kettle of importance than between specifying a syntactic separator of comma vs. semicolon. (No matter how much prettier I might think commas are, and superior for good visual presentation...)

So, the "live with" case is mentioned above, but I think it needs clarification in the previous paragraph. But I *do* want to argue that political compromise *is* never acceptable. It's one thing for me to conclude that I can live with semicolons over commas even though my preference is for commas (i.e., that it is a reasonable, though not preferred, engineering choice); that's just fine. It's quite different for me to conclude that the rest of these people are idiots for not choosing commas, but I'm going to put up with the semicolons because I want to make people happy so they'll do a hierarchical namespace, or because I've simply given up on trying to make this a good document. If it's a serious issue, giving up or trading is bad. If it's an "I can live with it" issue, then you're simply agreeing that the choice is acceptable.

And I'm not saying that the bad sort of compromise won't ever happen (we are humans, after all), or that there are no borderline cases (Is this me "living with it" or capitulating?), but I do want to say that participants have to decide whether they're making a reasonable engineering compromise or they are capitulating (or horse trading), and not do it if it's the latter.

And all that said, I need to clarify this.

   Note that this portrays rough consensus as an "exception".

I don't understand this first sentence. How is it an exception? Even with the following text, I don't see the basis for claiming that it might/would be seen as exceptional.

Maybe I need a different word. I didn't mean "exceptional" in the sense of "extraordinary" or "atypical". I simply meant it in the "exception handling" sense: We work toward full agreement, but if there's still disagreement, we undertake an alternative path. I'm open to suggestions for text.

   Now, a conclusion of having only rough consensus relies heavily on
   the good judgement of the consensus caller.  The group must truly
   consider and weigh an issue before the objection can be dismissed as
   being "in the rough".  The chair of the working group in one of these

In spite of being appealing to use here, I think that the phrase "in the rough" is actually distracting

As I mentioned earlier, I think it is worth defining as the golf term, since it is used quite frequently among IETFers nowadays.

   cases is going to have to decide that not only has the working group
   taken the objection seriously, but that it has fully examined the
   ramifications of not making a change to accommodate it, and that the
   outcome does constitute a failure to meet the technical requirements
   of the work.  In order to do this, the chair will need to have a good
   idea of the purpose and architecture of the work being done and use
   their own technical judgement to make sure that the solution meets
   those requirements.  What can't happen is that the chair bases their
   decision solely on hearing a large number of voices simply saying,
   "The objection isn't valid."  That would simply be to take a vote.  A
   valid justification needs to me made.

This begs the question of who determines that a justification is valid. I'll suggest that it mostly should be the working group, with the chair as fall-back or safety valve, but not default.

Remember, this is precisely the case where the working group claims to have considered the objection and found it to be wanting, but the objector still insists that the objection is valid. The rest of the working group can make the case that it has properly considered the objection, but it can't make the final call on whether it has; only the chair can do that.

By the way, the draft seems to think that it's always the chair who leads discussion and debate; it often/mostly isn't. Rather it's typically the authors/editors, with a chair serving to moderate impasses.

During my large edit, I'll have a look at this. My intention wasn't to say that the chair *leads* discussion. Indeed, beyond authors/editors, quite often it is someone else in the group who takes up the mantle of analyzing the discussion and proposing paths forward. But the chair in the end is responsible for making the final call as to the consensus of the group.

   A good outcome is for the
   objector to understand the decision taken and accept the outcome,
   even though their particular issue is not being accommodated in the
   final product.  Remember, if the objector feels that the issue is so

par break at Remember.

Sure.

   So, why do we hum?

This section reads nicely and sounds quite good and very possibly might be something that we /should/ do. However it has little to do with common IETF practice.

Yep. This goes back to your main critique. So really the above should say, "So why should we hum?", or something to that effect. Wilco.

Even better is that I think the draft has buried it's more important point, namely that the /form of the question/ asked when seeking a hum is the really hard part of the effort, and the most important part. Some forms invite constructive discussion and some close it off. Some are fair and balanced (...) and some are highly biasing.

I'll try to expand on that.

   But couldn't the above could have been done with a show of hands

This paragraph goes back to the hum-vs-hand methodology issue. It's important, but it's out of place here, since this section is about the /role/ of a hum, not its method. Discuss methodology separately, possibly up where it is first introduced.

I disagree with you on this one. The previous discussion was in the Introduction, which says, "Something's screwy here. What's up with that?" Here, I am trying to say, "Here's what we ought to be doing. Hums are good. Hands work too, but have their weaknesses." I think it works together well.

"the chair wants to choose the path that gets to the least objections fastest" sounds like an extremely appealing expedient, by virtue of being almost mechanical, but numbers often don't matter. A single objection that observes (and substantiates) that a choice will not or cannot be used in the real world will outweigh a much larger number of trivial objections.


Perhaps merely qualifying the statement a bit will suffice: the chair wants to choose the path that gets to the least number of significant objections fastest". Hmmm.

Yeah, this gets talked two paragraphs previously, but I think it's fair to reiterate here. I think the better fix is to add to the below sentence:

   There is always a chance
   that this could be misleading, because some people are more willing
   to hum loudly than others (just by dint of personality), but keep in
   mind that taking the hum is to figure out how to start the
   conversation.

Add after the parenthetical: "or that one of the quieter hums actually turn outs to be a showstopper that makes the original choice impossible,"


   Of course, a chair could get the temperature of the room by doing a
   show of hands too, and knowing who specifically feels one way or
   another can help a good chair guide the subsequent conversation.

And possibly place the minority under group pressure.

Sometimes a hum can do exactly the same.

   Sometimes, they simply mean they are making a call _of_ the
   consensus; that is, they are declaring the consensus that has, in
   their view, been reached when the discussion has reached an end.
   That's a fine thing and what chairs are supposed to do: They are
   "calling" the consensus.  Sometimes, when a chair says that they are
   We often hear chairs say that they are making a "consensus call".

Might be worth tossing in the word "confirm" or "confirming existing consensus" here, to leave no doubt about what "calling" means.

Yeah, or use the word "stating" or "expressing". I'll work on that.

   So in a large working group with over 100 active participants and
   broad agreement to go forward with a particular protocol, if a few
   participants say, "This protocol is going to cause congestion on the
   network, and it has no mechanism to back off when congestion occurs;
   we object to going forward without such a mechanism in place", and
   the objection is met with silence on the mailing list, there is no

The problem here is who is the authority to determine that the objection needs to hold sway. It's easy to lay this on the chair, but that makes the mechanisms fragile; it's too easy for one person to get this sort of thing wrong.

The case we're talking about here is an objection being met with silence. In that case, the presumption (i.e., not the conclusion) is, "Real objection; needs to be dealt with." The only way that the chair can "get this sort of thing wrong" is to at that point silently decide that it's not an objection worth addressing. The chair can say to the group, "I've seen this objection, but I don't think it's valid. Can someone confirm my view that it's not valid, or can the objector or someone else please explain why it is?" But this is only about whether a completely dropped-on-the-floor objection is OK. It's not.

Did I miss your point?



7.  Five people for and one hundred people against might still be rough
    consensus
...


   Now the worst case scenario happens.  The objector, still unhappy
   that their preferred solution was not chosen, recruits one hundred
   people, maybe a few who were silent participants in the working group
   already, but mostly people who work at the same company as the
   objector who never participated before.  The objector gets them all
   to post a message to the list saying, "I believe we should go with
   the new elegant algorithm in section Z instead of the current one.
   It is more elegant, and works better on our hardware."  The chair
   sees these dozens of messages coming in and posts a query to each of
   them: "We discussed this on the list, and we seemed to have consensus
   that, given the inherent risk of a new algorithm, and the widespread
   deployment of this current one, it's better to stick with the current
   one.  Do you have further information that indicates something
   different?"  And in reply the chair gets utter silence.  These
   posters to the list (say some of whom were from the company sales and
   marketing department) thought that they were simply voting and have
   no answer to give.  At that point, it is within bounds for the chair
   to say, "We have objections, but the objections have been
   sufficiently answered, and the objectors seem uninterested in
   participating in the discussion.  Albeit rough in the extreme, there
   is rough consensus to go with the current solution."

There's an interesting methodological point buried quite deep in this example, and probably worth surfacing sooner and more directly:

Besides being careful about how the question for a consensus check is phrased, it is sometimes advisable to seek to discover what the responses mean.

In the example here, the question is whether those responding were sufficiently well-informed to be able to justify their position.

I'll take an edit pass. Yes, that is exactly what I was trying to get at (among other things).

   There is no doubt that this is the degenerate case and a clear
   indication of something pathological.  But this is precisely what
   rough consensus is designed to guard against: vote stuffing.  In the

Sorry, no. It's not 'designed' for that at all, at least not in typical practice in the IETF. It probably /should/ be, and the draft does a pretty good job of explaining how it /can/ be, but there is nothing in the "design" of the IETF's consensus process that has a history of mitigating against the problem the draft discusses here, and the problem isn't mentioned in formal IETF documents.

Yes, fair criticism. "But this is precisely what rough consensus is ideally suited to guard against:"

Excellent comments. Thanks.

On to the next set....

pr

--
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478