The Apache Software Foundation
Community > Code
In some cases there is no obvious path to take, or you might be a new community, or a new member of an existing community. In these cases people will often need to build consensus by making proposals and eliciting responses.
We want to avoid unnecessary discussion and the creation of significant amounts of unnecessary mail that everyone in the community needs to read. That is not to say that we want to avoid constructive discussion. This is the lifeblood of a successful project. However, many ASF projects adopt a shorthand notation for showing support, or otherwise, for a proposal.
Expressing support (or otherwise)
First of all, it is important to understand that everyone is invited to express their opinion of any given action or proposal. Apache projects are community projects in which no single individual has more power than any other single individual (except in a very few procedural situations).
The notation used is “+1”, “-1” and “0”. It’s also common to see “+0” and “-0”.
So, what do these notations mean?
- +1 means “I agree with this and will help make it happen”
- +0 means “I agree with this but probably won’t make it happen, so my opinion is not that important”
- -0 means “I don’t agree with this, but I’m offering no alternative so my opinion is not that important”
- -1 means “I don’t agree and I am offering an alternative that I am able to help implement”
Many people will use fractions to indicate the strength of their feelings, e.g. “+0.5”. Some will even indicate this is a “no brainer” with something like “+1000”.
The important thing is that this is not an exact science. It’s just a shorthand way of communicating strength of feeling.
Consensus Building is Not Voting
The confusing thing about this notation is that it is the same notation used in a formal vote. Knowing when something is a vote and when it is a preference is important. It’s easy to tell though, if the subject does not have “[Vote]” at the start then it’s just an opinion. We try not to call votes, consensus building is much more inclusive.
The reasons for this notation being common is that when someone wants to summarise a discussion thread they can mentally add up the strength of feeling of the community and decide if there is consensus or not.
Once there is a clear consensus members of the community can proceed with the work under the lazy consensus model.