Top Banner
Emerging Models for Open Source Contributions @nayafia for GitHub CodeConf
75

Emerging Models for Open Source Contributions

Apr 15, 2017

Download

Software

Nadia Eghbal
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Emerging Models for Open Source Contributions

Emerging Models for Open Source Contributions

@nayafia for GitHub CodeConf

Page 2: Emerging Models for Open Source Contributions

@nayafia

1980s-late 1990s: BDFLLate 1990s-mid 2010s: Meritocracy

Mid 2010s-today: Liberal contribution

Page 3: Emerging Models for Open Source Contributions

@nayafia

Different models solve for different “market” needs

Page 4: Emerging Models for Open Source Contributions

@nayafia

Market = users + contributors

Page 5: Emerging Models for Open Source Contributions

@nayafia

1980s-late 1990s: BDFL(Linux)

Page 6: Emerging Models for Open Source Contributions

@nayafia

Fewer users, fewer contributors

Page 7: Emerging Models for Open Source Contributions

@nayafia

The BDFL has benefits:

Page 8: Emerging Models for Open Source Contributions

@nayafia

Centralized leadership and governance

Page 9: Emerging Models for Open Source Contributions

@nayafia

Centralized roadmap and direction

Page 10: Emerging Models for Open Source Contributions

@nayafia

But BDFLs are also by definition less democratic.

Page 11: Emerging Models for Open Source Contributions

@nayafia

And BDFLs made companies nervous.

Page 12: Emerging Models for Open Source Contributions

@nayafia

Open source needed company buy-in to

succeed.

Page 13: Emerging Models for Open Source Contributions

@nayafia

Late 1990s-mid 2010s: Meritocracy(Apache)

Page 14: Emerging Models for Open Source Contributions

@nayafia

Apache flattened the BDFL model, enabling multiple actors

to participate.

Page 15: Emerging Models for Open Source Contributions

@nayafia

Anyone (with merit) can contribute

Page 16: Emerging Models for Open Source Contributions

@nayafia

Anyone (with merit) can vote on decisions

Page 17: Emerging Models for Open Source Contributions

@nayafia

This did wonders for company buy-in

Page 18: Emerging Models for Open Source Contributions

@nayafia

(And is partially why open source thrives today)

Page 19: Emerging Models for Open Source Contributions

@nayafia

But there was still friction in the form of one little

clause:

Page 20: Emerging Models for Open Source Contributions

@nayafia

*with merit

Page 21: Emerging Models for Open Source Contributions

@nayafia

“When the group felt that the person had "earned" the merit to be part of the development community, they granted direct access to the code repository….

We call this basic principle "meritocracy": literally, government by merit….

The group was happy to have new people coming in and help, they were only filtering the people that they believed committed enough for the task and matched the human attitudes required to work well with others, especially in disagreement.”

Apache Software Foundation

Page 22: Emerging Models for Open Source Contributions

@nayafia

If you wanted to be part of a meritocracy, you needed

to prove yourself.

Page 23: Emerging Models for Open Source Contributions

@nayafia

And you prove yourself by spending time on a project.

Page 24: Emerging Models for Open Source Contributions

@nayafia

This makes sense in theory (only people who’ve

“earned it” get a voice)

Page 25: Emerging Models for Open Source Contributions

@nayafia

But in practice, it favored those who could “pay [with

time, money] to play”

Page 26: Emerging Models for Open Source Contributions

@nayafia

Mid 2010s-now: Liberal contribution(Node.js)

Page 27: Emerging Models for Open Source Contributions

@nayafia

More users, more tech talent than ever before

Page 28: Emerging Models for Open Source Contributions

@nayafia

Git + GitHub made it easier for anyone to jump in on projects

Page 29: Emerging Models for Open Source Contributions

@nayafia

49% of ppl on top GitHub projects only contributed once

Page 30: Emerging Models for Open Source Contributions

@nayafia

More noise from casual contributors

Page 31: Emerging Models for Open Source Contributions

@nayafia

Under a meritocracy, this was a bad thing

Page 32: Emerging Models for Open Source Contributions

@nayafia

Casual contributors hadn’t “earned” their voice

Page 33: Emerging Models for Open Source Contributions

@nayafia

Make them go away!

Page 34: Emerging Models for Open Source Contributions

@nayafia

But some people looked at casual contributors and saw

an opportunity.

Page 35: Emerging Models for Open Source Contributions

@nayafia

Instead of tuning out the noise, Node.js decided to harness and

redirect it

Page 36: Emerging Models for Open Source Contributions

@nayafia

Dropped their CLA requirement

Page 37: Emerging Models for Open Source Contributions

@nayafia

“...while I believe these constructs to be well-intended...Even at their very best, CLAs...seem like asking people to go to the dentist before their pull request can be considered.”

Bryan Cantrill, Joyent

Page 38: Emerging Models for Open Source Contributions

@nayafia

Adopted a liberal contribution policy

Page 39: Emerging Models for Open Source Contributions

@nayafia

“Getting people to contribute is hard,When you distribute ownership people contribute more,

And if anyone does something wrong,Git is good at removing things.”

Mikeal Rogers, Node.js

Page 40: Emerging Models for Open Source Contributions

@nayafia

And some fun things started to happen:

Page 41: Emerging Models for Open Source Contributions

@nayafia

Way more contributions*

* oh yeah there was a fork

Page 42: Emerging Models for Open Source Contributions

@nayafia

Free marketing: contributors

became WOM ambassadors

Page 43: Emerging Models for Open Source Contributions

@nayafia

Attracted new perspectives, skills, backgrounds

Page 44: Emerging Models for Open Source Contributions

@nayafia

“People need to be enabled to do good work.When you make it clear and obvious what they can do,

More people will do,And they won’t be people just like you.”

Mikeal Rogers, Node.js

Page 45: Emerging Models for Open Source Contributions

@nayafia

Awesome!

Page 46: Emerging Models for Open Source Contributions

@nayafia

Another example of liberal contribution

model: Rust

Page 47: Emerging Models for Open Source Contributions

@nayafia

Rust went from BDFL (2010) -> core team (2013) -> federated

structure (2015)

Page 48: Emerging Models for Open Source Contributions

@nayafia

Rust has 1200+ contributors, many of whom make regular contributions

Page 49: Emerging Models for Open Source Contributions

@nayafia

“To the extent practical, we should include a diverse range of perspectives in both design and decision-making, and

especially include people who are most directly affected by decisions: users.”

Aaron Turon, Rust

Page 50: Emerging Models for Open Source Contributions

@nayafia

Some patterns for liberal contribution models:

Page 51: Emerging Models for Open Source Contributions

@nayafia

1/ Floodgates, not bottlenecks

Page 52: Emerging Models for Open Source Contributions

@nayafia

2/ “Consensus seeking” (discuss major

concerns) rather than “consensus” (pure vote)

Page 53: Emerging Models for Open Source Contributions

@nayafia

3/ Meet contributors where they are

Page 54: Emerging Models for Open Source Contributions

@nayafia

4/ Default to yes

Page 55: Emerging Models for Open Source Contributions

@nayafia

Putting it all together

Page 56: Emerging Models for Open Source Contributions

@nayafia

Do BDFLs still matter?

Page 57: Emerging Models for Open Source Contributions

@nayafia

Yes!

Page 58: Emerging Models for Open Source Contributions

@nayafia

Some centralization is important, especially in early stage

Page 59: Emerging Models for Open Source Contributions

@nayafia

BFDLs can help incubate a project, set vision, and reduce

noise early on

Page 60: Emerging Models for Open Source Contributions

@nayafia

As project matures, liberal contribution models can help

with growth

Page 61: Emerging Models for Open Source Contributions

@nayafia

Project trajectory might look like this:

Page 62: Emerging Models for Open Source Contributions

@nayafia

Rust, Django, Node started with a BDFL, then transitioned out when

community got big enough

Page 63: Emerging Models for Open Source Contributions

@nayafia

“Kings, presidents, and BDFLs have their place, and there are models of community that are

aided by having them. But the longer I observe the Django community, the more I realize that

our community doesn’t need them.”

Jacob Kaplan-Moss, Django

Page 64: Emerging Models for Open Source Contributions

@nayafia

Do BDFLs work as a long-term strategy?

Page 65: Emerging Models for Open Source Contributions

@nayafia

Clojure uses a BDFL model

Page 66: Emerging Models for Open Source Contributions

@nayafia

Most Clojure contributions made by a few people

Page 67: Emerging Models for Open Source Contributions

@nayafia

Clojure is sustainably supported by Cognitect

Page 68: Emerging Models for Open Source Contributions

@nayafia

BDFL for the long term still requires “getting lucky”

Page 69: Emerging Models for Open Source Contributions

@nayafia

In the absence of a benefactor, the liberal contribution model is a

pretty good hack to reduce maintainer burden.

Page 70: Emerging Models for Open Source Contributions

@nayafia

Will it work for everyone?

Page 71: Emerging Models for Open Source Contributions

@nayafia

Still too early to tell

Page 72: Emerging Models for Open Source Contributions

@nayafia

Not every project will fit into this model

Page 73: Emerging Models for Open Source Contributions

@nayafia

Highly dependent upon community and culture

Page 74: Emerging Models for Open Source Contributions

@nayafia

But liberal contribution models give us a framework for what sustainability could look like

Page 75: Emerging Models for Open Source Contributions

@nayafia

Questions?

Special thanks to @mikeal for making this talk suck less , as well as @steveklabnik and @puredanger for their valuable perspectives on Rust and Clojure