Mere Code

Diverse Topics of General Interest to the Practicing Programmer

Expressing agreement and disagreement numerically

There’s a habit within Canonical on expressing agreement and disagreement numerically. If we agree with something someone says in email or IRC, we’ll often say “+1”, which means “I agree!” or “if we were to vote about this, you would have my vote”. I sometimes hear people actually say the words “plus one” in conversation.

Some have extrapolated from this to say “-1” to mean “I disagree”, which is a pretty natural thing to do. However, it confuses me a lot.


You see, the “+1” thing is a little bit like the Apache voting system, which I met in my early days of open source, back when I lurked on the Subversion development mailing list. The voting rules there were burned into my mind, and I foolishly assume that they are equally fundamental to everyone else.


In the Apache system, “-1” means “veto”, which is a very strong way of disagreeing. When people on the Launchpad say “-1”, I never really know what they mean. I don’t blame them, “-1” is a bit of a silly way of vetoing a proposal. I bet if keyboards had a key for ∞, there’d be a much more sensible way.

I guess the moral of the story is, “ambiguous shorthand is ambiguous”.

Incidentally, how does the Apache voting system work out in practice these days?

Comments

facundo on 2011-02-08 16:28
The numerical voting system is widely and currently used in the Python ecosystem.

The meanings are (from [0]):

+1 I like it

+0 I don't care, but go ahead

-0 I don't care, so why bother?

-1 I hate it

Regards,

[0] http://www.python.org/dev/peps/pep-0010/
jkakar on 2011-01-26 19:34
My favourite vote is +1000, ie, "OMG AWESOME YES YES YES". :)
allenap on 2011-01-26 13:53
I don't have any experience of voting numerically outside of Canonical, but I have never considered -1 as a veto, except where unanimous consent is sought (but I can't remember being part of a vote like that). By that I mean that it has never even occurred to me! My assumption has always been that agreement = sum(votes) > 0, with +0 and -0 being a non-influencing way to express inclination.
jam on 2011-01-25 20:51
For bzr, we always required no -1 votes, which lead to the -0 vote. (I'm against this, but not enough to block it.)

Of course, we also had the +0 (I think it is interesting, but not sure it should be accepted.), etc.

Though we switched to words pretty quickly. I still really miss the "BB:tweak" vote. (Land it with some small changes.)
jc on 2011-01-25 19:13
A quick read through of the apache rules says -1 is a veto only if consensus is required. While we like consensus, we don't seem to require it on LP, if there's broad agreement and a few holdouts. So in that context, the -1 makes sense as disagreement.

But largely, I agree with deryck; I've seldom seen -1 used as veto in practice.
jml on 2011-01-25 18:49
Thing is, there are plenty of things that I disagree with but would not veto, even if I had the power. Use of veto (or even saying "I'd veto this if I could") costs a certain amount of rhetorical capital.
deryck on 2011-01-25 18:46
I think the ambiguity is because in practice no one uses -1 to mean veto. -1 is just a vote against. Whether or not you use it as veto is subject to the terms of your voting agreement. :-) I've only known Apache to use it as a veto.