[This is a post I originally made in March 2005 when working on volunteer projects in the Carribean region. I recently rediscovered it and figured it was just as appropriate to my new community here at OSS Watch. Interestingly I was using an open source technique to inform decision making processes in volunteer projects that were not necessarily software related, althought they were usually IT related. Now I find I come full circle and use the same post in an open source context. I have edited it slightly to make it fit this new context better and to remove some of the original links which have since dissappeared.]
One of the toughest things in any community led project is balancing effective decision making controls against a constricting set of rules and regulations designed to protect the core objectives of the project. Some time ago Sylvian Wallez looked at the approach of the Cocoon project. His observations are interesting, educational and equally valuable to volunteer projects of any type, not just an open source projects, so we have many lessons to learn.
Sylvian observes that whilst a Meritiocracy succesfully identifies the right people to invite into the project, it is not an effective way of keeping the community vibrant. In order to survive a project must be continually active, to be continually active decisions need to be made quickly and contributions need to be encouraged by not restricting them with a lengthy decision making process.
Contributors do not want to waste effort on work that will subsequently be rejected by the community. Consequently, in an ideal world, one will get community consensus before making a contribution. However, in some communities (far too many in my experience) it can be too difficult to gain consensus and so one simply does not bother.
If the effort of gaining consensus is too great then this will stifle contributions to the project. As a result contributions start to dry up and the project may eventually die through lack of activity.
Lazy Consensus
Most Apache projects, and many other sucessful open source projects use the concept of lazy consensus to solve this problem of efficiently gaining consensus. Whilst I have grown to love this method through my work on open source projects, I strongly believe it is applicable to any community led project.
With lazy consensus the idea is that a potential contributor notifies the community of their intentions. For example, they may say “I intend to do XYZ, unless someone objects within 3 days I will go ahead with this.“ This notification can be made in any form that the community accepts, such as via a mailing list or a shared document space with community notification devices (or in non-technical speak, a village noticeboard ;-)).
The benefits of this approach include the fact that in the absence of an objection one can assume one has consensus. Community members with no objection and nothing to add to the contribution need take no action. Only those people who believe they can help improve it or those who believe there is a flaw in it need spend any time contributing or objecting to the proposal.
A further advantage of Lazy Consensus is perhaps the most important. Lazy Conensus removes the risk of slipping into despotism since community consensus is still required. No contribution is made without the implicit approval of the community and so nobody can cry “foul” at a later date.
