Open Source Governance Models:
From BDFL to Consensus Seeking
With your host
@MylesBorins
Linux Open Source Leadership Summit
Howdy
My Name is Myles

I am gainfully employed by Google as a Developer Advocate
Focusing on the Node.js ecosystem running on GCP

The opinions expressed in this talk are solely my own
What even is open source governance
How is Node Governed?
Board of Directors
13 members
TSC
11 members
CTC
19 members
Collaborators
74 members
Working Groups
sooooo many (this is a good thing)
Trust in individuals can be replaced
With trust process and tooling
Consensus Seeking
Our Technical Governance Model
But how did we get here?
We have to go back!
Node.js was created in 2009
It was created by Ryan Dahl
First presented at JSConf.eu 2009
It was run using a BDFL model
What is BDFL?
Benevolant Dictator for Life
originally coined
as a title for
Guido van van Rossum
in a 1995 email thread
TLDR;
A governance model where a single individual
Retains the final say in decision making
Examples
Linus Torvalds
Linux
Larry Wall
Perl
Yukihiro Matsumoto (Matz)
Ruby
BDFL can be successful
if truly benevolent
"BDFLs works if they see themselves as facilitators not controllers"
- @ag_dubs
Node had 3 different BDFLs
Ryan Dahl
From initial release until v0.6
Isaac Schlueter
Starts doing releases at v0.6.5
TJ Fontaine
Starts doing releases at v0.10.13
Under corporate sponsorship
Node stagnated
Node started with alternating releases
Even was stable
Odd was unstable
It was taking a long time
for v0.12.0
Let alone v1.0.0
The project was forked in Dec of 2014
Released as v1.0.0
v0.12.0 Released
Feb 2015
Just before Node Summit
v1 - v3 were all part of the iojs project
Node was put into a foundation
The projects merged as v4.0.0
September of 2015
Consensus Seeking
How does it work?
Every commit
- Must come as a PR on github
- Must bake for 48 hours during the week
- Must bake for 72 hours during the weekend
- Must be approved by at least 1 collaborator
- Must have no disagreement (if non breaking)
Semver Major Changes
- Must be reviewed by the CTC
- This does not need to be during a meeting
- Preference is to reach consensus in PR
We have a well defined release process
Including a Long Term Support schedule

Trust in individuals
can be replaced
With trust process and tooling
CI
Smoke Testing
By putting our community first
We allow ourselves to update the process
Finding some amazing people
Rich Trott
@addaleax
William Kapke
ME
So which Governance model should I use?
Use whatever you want!
BDFL can look like lazy consensus
But it does introduce Risk
What is important
Is that you empower your community
Thank You
