On 6/18/2015 11:03 AM, Mark Friedenbach wrote:
On Thu, Jun 18, 2015 at 6:31 AM, Mike Hearn <mike@plan99.net> wrote:
The first issue is how are decisions made in Bitcoin Core? I struggle to explain this to others because I don't understand it myself. Is it a vote of people with commit access? Is it a 100% agreement of "core developers" and if so, who are these people? Is it "whoever reverts the change last"?  Could I write down in a document a precise description of how decisions are made? No, and that's been a fairly frustrating problem for a long time.

There is a quote from United States Supreme Court Justice Potter Stewart to describe his threshold test for obscenity which is relevant here: "I know it when I see it."

It is hard certainly, and perhaps even impossible to write down a system of rules that is used to resolve every dispute among core developers. But that doesn't mean it isn't obvious to all the participants what is going on. If a contentious change is proposed, and if after sufficient debate there are still members of the technical community with reasoned, comprehensible objections who are not merely being obstinate in the views -- a neutral observer would agree that their concerns have not been met -- then there is a lack of consensus.

If there was some sort of formal process however, the system wouldn't work. Rules can be gamed, and if you add rules to a process then that process can be gamed. Instead we all have a reasonable understanding of what "technical consensus" is, and we all know it when we see it. Where we do not see it, we do not proceed.


There is always a process.  Right now the process is haphazard, unclear, and constantly changing without being written down so people don't actually know what it is.  In fact you do not all have a reasonable understanding of "technical consensus" because if you did then you could write it down ... but you can't.   The current process is being gamed by people making tweets, reddit posts, videos, and blog posts.  A more formalized process would channel that activity into a a more usable format. 

This kind of thing always happens as projects become larger and more diverse.  Something that was once a small group turns into a big group of diverse stakeholders.  When it gets too big for the informal processes then some people get upset and defensive.  Happens all the time but it is not really a good excuse to keep doing things in an inefficient manner.  The old ways just don't scale and if you ever worked on massive projects then you know these formal processes work better.

Russ