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 often need to build consensus by making proposals and eliciting responses.
Constructive discussion is the lifeblood of a successful project. However, we want to avoid unnecessary discussion and significant amounts of unnecessary mail that everyone in the community needs to read. so many ASF projects adopt a shorthand notation for showing support, or otherwise, for a proposal.
Expressing support (or otherwise) ¶
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 use fractions to indicate the strength of their feelings, e.g. “+0.5”. Some will even indicate their opinion that the proposal is a “no brainer” with something like “+1000”.
This notation is not an exact science. It’s just a shorthand way of communicating strength of feeling.
Consensus building is not voting ¶
A 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 line of the email thread 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 whether there is consensus.
If there is clear consensus in favor of a proposal, members of the community can proceed with the work under the lazy consensus model.