blob: 2b8b651e38904166f80c0337754fd7be8ff3255b [file] [log] [blame] [view]
---
title: Decision-Making
---
The most important thing about engaging with any Apache project is that everyone
is equal. All project participants with an opinion can express that opinion and, where
appropriate, have the community consider it.
To some, the idea of having to establish consensus in a large and distributed team
sounds inefficient and frustrating. Don't despair, though: The Apache Way has a
set of simple processes to ensure things proceed at a good pace.
In ASF projects we don't like to vote. We reserve that for the [few things that need
official approval for legal or process reasons][14] (e.g. approving a release or adding a new committer).
Most of the time we work with the consensus-building techniques documented below.
## Consensus
The word "consensus" is a bit ambiguous in English, and so can lead to
some misunderstandings of intent when we use it in the context of
project decisions. Consensus does not mean that everyone agrees on all
details. Rather, it means that the project, as a whole, has arrived a
decision, or at least a compromise, that everyone can live with.
## Lazy Consensus
[Lazy consensus][10] is the first, and possibly the most important, consensus-building
tool we have. Essentially lazy consensus means that you don't need to get explicit
approval to proceed, but you need to be prepared to listen if someone objects.
Lazy consensus is achieved by stating your intent on a public email, and
waiting an appropriate amount of time (usually 72 hours) for anyone to
object. Silence indicates consent, and after that time has passed, you
can assume that nobody objects, and proceed with your plan.
Objections to the plan should be accompanied by a legitimate reason, and
be open to discussing possible alternative approaches.
## Consensus Building
Sometimes lazy consensus is not appropriate. In such cases it is necessary to
make a proposal to the email list and discuss options. There are mechanisms
for quickly showing your support or otherwise for a proposal and
building consensus within the community.
A consensus-building thread is often indicated by a subject line
starting with **[DISCUSS]**. Sufficient time should be provided for
members of the community to express opinions, and defend objections.
It is customary for the initiator of the discussion to post a summary of
the discussion once it appears that consensus has been reached, to
ensure that their understanding of the will of the community is
accurate.
## Voting
Occasionally a "feel" for consensus is not enough. Sometimes we need to
have a measurable consensus, for example, when [voting][14] to add committers or
to approve a release.
To conduct a vote once a discussion thread seems to be winding down,
start a new thread with a subject line starting with **[VOTE]** to
indicate that a formal vote has been requested.
[10]: https://www.apache.org/foundation/glossary.html#LazyConsensus
[11]: /committers/consensusBuilding.html
[14]: https://www.apache.org/foundation/voting