Rough Consensus

RFC 7282: On Consensus and Humming in the IETF

We reject: kings, presidents and voting.

We believe in: rough consensus and running code.

Engineering decisions always come with a varying degree of trade offs. That is just the nature of software development, like it is with all engineering. People also bring opinions and previous experience to the table. It is unreasonable to assume that everybody is going to agree all of the time, but decisions still need to be made.

The IETF have been practicing consensus in decision making for a long time now. It is especially useful in those forums, where it is difficult and contentious to apply some sort of single hierarchy or have a president. I also believe that it is healthy for team culture and collaboration.

IETF memo TL’DR

“Consensus doesn't require that everyone is happy and agrees that the chosen solution is the best one. Consensus is when everyone is sufficiently satisfied with the chosen solution, such that they no longer have specific objections to it.“
  • Lack of disagreement is more important than agreement
  • Rough consensus is achieved when all issues are addressed, but not necessarily accommodated
  • Humming should be the start of a conversation, not the end
  • Consensus is the path, not the destination
  • One hundred people for and five people against might not be rough consensus
  • Five people for and one hundred people against might still be rough consensus