blob: 2eb2611aa272f0187acb6dee32866065c4a5c9cc [file] [log] [blame]
Title: Lazy Consensus
Notice: Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
The concept of "Lazy Consensus" is very important in our project. Lazy
Consensus means that when you are convinced that you know what the community
would like to see happen you can simply assume that you already have consensus
and get on with the work. You don't have to insist people discuss and/or
approve your plan, and you certainly don't need to call a vote to get approval.
You just assume you have the community's support unless someone says otherwise.
We have a time machine (Subversion), this means that as long as you commit
(or submit patches) early and often the community has plenty of opportunity
to indicate disapproval. If you believe the community will support your action
you can operate on lazy consensus as long as you are prepared to roll back
any work should a valid objection is raised.
## Avoiding Unnecessary Discussion
The key thing about lazy consensus is that it's easier for people to agree,
by doing nothing, than it is to object, which requires an
alternative to be proposed. This has two effects, firstly people are less
likely to object for the sake of it and secondly it cuts down on the amount
of unnecessary mail traffic and discussion.
Lazy consensus means we can avoid waiting for a community based decision
before proceeding. However, it does require everyone who cares for the health
of the project to watch what is happening, as it is happening. Objecting too
far down the road will cause upset, but objecting (or asking for clarification
of intent) early is likely to be greeted with relief that someone is watching
and cares.
## Stating Lazy Consensus
Sometimes a member of the community will believe a specific action is the correct
one for the community but are not sure enough to proceed with the work under the
lazy consensus model. In these circumstances they can state Lazy Consensus is in
operation.
What this means is that they make a proposal and state that they will start
implementing it in 72 hours unless someone objects. 72 hours is chosen because
it accounts for different timezones and non-apache commitments.
In this approach the original proposal is not insisting that there is a discussion
around their proposal, nor are they requesting that the community explicitly
supports their actions. However, this differs from assuming lazy consensus
since it allows space and time to [express support or objections][1] and corrections to
the proposal before work begins.
## Silence is consent
People may choose to indicate their support for the actions taken with a +1
mail - quick and easy to read and reassuring for the implementer. However,
remember, in a lazy consensus world silence is the equivalent to support. This
can take some time to get used to.
[1]: /odftoolkit/docs/governance/consensusBuilding.html