On 27.05.20 16:13, Richard Hartmann wrote:
> On Wed, May 27, 2020 at 12:54 AM Bjoern Rabenstein <[email protected]> wrote:
> 
> > - The changes as suggested in
> >   
> > https://github.com/prometheus/docs/commit/f7ee6ac5a9b841be6be25d92e2c403de15949491
> >   are _not_ following the spirit of RFC7282.
> 
> I disagree with the above, and with the longer-form text not quoted, as
> * rough consensus obviously tries to go the happy path of full consensus first

Weird. My reading is that "obviously" rough consensus is what you do
if you cannot reach "smooth" consensus but want to avoid voting.

> * rough consensus as per the commit contains its mechanisms strictly
> below the stronger mechanisms of majority and supermajority vote

So you are saying that, if you say "rough consensus", you mean a wider
concept around the idea of rough consensus, as described in RFC7282,
and not just rough consensus itself as a step during decision making.

> > - To truly adopt rough consensus, we need to introduce a chair and get
> >   rid of decision finding by voting (with change of governance,
> >   admitting and removing team members, and electing the chair as
> >   notable exceptions). But that would be a very invasive change of the
> >   governance.
> 
> If "truly adopting rough consensus" was the proposal, I would agree.
> That's _not_ the proposal, though.

OK, but then the proposal is really difficult to understand. You don't
want to adopt RFC7282 completely, but you also say that "rough
consensus" is a whole method or procedure and more than just one step
during decision making.

I'd say we need a proper definition then and not just a link to
RFC7282, of which some parts are relevant and some not, and the reader
has to guess which are which.

> The proposal is to improve the self-contained "consensus" bit while
> keeping both voting mechanisms intact. As such, there's an easy way
> out of any impassé.

If you want to give a clearer definition of "consensus", fine. So far,
things have just become less clear to me.

> * consensus:
>   * 100% agreement by team members who care to join the discussion

That's not how I understand consensus. As I have learned much earlier,
consensus may include many flavors of disagreement. "Disagree but
commit" is perhaps the strongest (and arguably a borderline case). The
excellent RFC7282 describes many other "good" varieties of consensus
(but that's not the first time I read about them).
Example quotes:

"Consensus doesn't require that everyone is happy and agrees that the
chosen solution is the best one.  Consensus is when everyone is
sufficiently satisfied with the chosen solution, such that they no
longer have specific objections to it."

"Coming to consensus is when everyone (including the person making the
objection) comes to the conclusion that either the objections are
valid, and therefore make a change to address the objection, or that
the objection was not really a matter of importance, but merely a
matter of taste."

It also describes varieties of "not really consensus": "People might
very well agree that a solution is sufficient and have no objection to
it, but if they also don't actively think it's a good and correct
outcome, it's absurd to declare that the group has consensus." Or the
"capitulation" antipattern, when one party just has "simply given up
by trying to appease the others". or the "horse-trading" variety.

Note that none of the consensus examples above, neither the proper
ones nor the false ones, are called "rough consensus" in the RFC: "Of
course, coming to full consensus like that does not always happen.
That's why in the IETF, we talk about 'rough consensus'."

(Strictly speaking, you could argue that "rough consensus" is the
superset of the happy case and the rough case, but it's still very
confusing if the governance says "our default way of deciding is rough
consensus". It should be "our default way of deciding is by consensus,
if need be by a rough one".)

Circling back: If all you want is to define "consensus" better, then
let's just do it. I can see how the "as long as nobody objects" in the
governance can be read as including some of the "not really consensus"
cases from RFC7282, but as excluding some of the "proper consensus"
cases.

Here is a rough suggestion how a minimal governance change could look
like:
https://github.com/prometheus/docs/commit/66dcf05d9d8fa246ef7c557b4a1978c718455fd2

_However,_ I have no high hopes that such a governance change will on
its own change anything in our decision making. For one, I'm confident
that most of us were alredy aware that consensus does not equal "100%
agreement by team members". Furthermore, as has been said multiple
times by now, most of the difficult decision making had its root cause
in precisely the problem that not all participants saw their
objections addressed. If we cannot agree that all objections have been
addressed, and we have no chair that has the power to make that
assessment, there will still be no decision. The only situation that
would change with adopting "chair-free rough consensus" is the one
where everyone involved agrees that all their objections have been
addressed, but they still want them to also be accommodated, and
that's why they still continue to block the consensus. I would be
surprised if we ever had that situation or ever will have.

I wouldn't oppose a governance change as the one I have sketched out
above, but I don't think it would help beyond emphasizing a spirit
that we were already following anyway.

-- 
Björn Rabenstein
[PGP-ID] 0x851C3DA17D748D03
[email] [email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-developers/20200527211950.GE2326%40jahnn.

Reply via email to