jsconfuy: the node.js project (rvagg)
TRANSCRIPT
© 2016 NodeSource
Who am I?
Who am I? • Chief Node Officer @ NodeSource
• Member of the Node.js TSC & CTC
• Open software governance aficionado
2
© 2016 NodeSource
Wut?
What this talk is about • Trends toward greater openness in open source
• The Node.js project’s transition to open governance
• Getting involved
3
© 2016 NodeSource
Open source history
Source code hosting, sharing & “social”
Wild West / self-hosted
SourceForge (and Freshmeat?)
GitHub
7
© 2016 NodeSource
CVS
SVN
Git
Self-hosted
SourceForge
GitHub
Open source history
8
Trend
Reduced collaboration frictionFocus on community / social
Openness and visibility
© 2016 NodeSource
Open source history
9
CVS
SVN
Git
What’s next?
Self-hosted
SourceForge
GitHub
What’s next?
© 2016 NodeSource
Open source history
With a trend toward reduced friction, increased community and greater openness,
the future of open source
looks more like a wiki
10
© 2016 NodeSource
OPEN Open Source
“Individuals making significant and valuable contributions are given commit-access to a project to contribute as they see fit. A project is more like an open wiki than a standard guarded open source project.”
12
http://openopensource.org/
© 2016 NodeSource
OPEN Open Source
Basic guidelines • Don’t mess with Git history
• Internal pull requests for all changes
• Consensus-seeking for everything
• New contributors get equal ownership and a seat at the decision-making table
• No BDFL (“benevolent dictator for life”); respect and moral authority are earned
13
© 2016 NodeSource
Open governance in practice
Impact: projects better reflect their users Projects are driven by the people and groups that value them the most
Those who put in the most resources get influence: encourages participation
15
© 2016 NodeSource
Open governance in practice
Impact: restraint by consensus-seeking The need to work toward consensus:
• Forces restraint, compromise and stability
• Increases the scope of discussion to include diverse user perspectives
• Provides a key touch-point for community building
16
© 2016 NodeSource
Open governance in practice
Impact: increased focus on key areas The need to work toward consensus:
• Forces discussion of what really matters
• Highlights the areas of difference
• Encourages dialog with the other
17
© 2016 NodeSource
Open governance in practice
18
Impact: openness Openness begets openness
• More welcoming of new contributors
• More embracing of a diversity of perspectives
• Focus on discussion and consensus-seeking rather than dictates and imposition
© 2016 NodeSource
Node.js: v0.10 and beyond
20
Com
mits
per
mon
th
0
100
200
300
400
Rele
ases
per
mon
th
0
3
6
9
12
Uniq
ue co
mm
iters
per m
onth
0
23
46
69
92
Mar 2013 Jun 2013 Sep 2013 Dec 2013 Mar 2014 Jun 2014 Sep 2014 Dec 2014 Mar 2015 Jun 2015 Sep 2015 Dec 2015
Fork Convergence
Node.jsv4.0.0
Node.jsv0.10.0
Node.jsv0.12.0
Open Governance
© 2016 NodeSource
Node.js: v0.10 and beyond
21
Uniq
ue co
mm
iters
per m
onth
0
23
46
69
92
Mar 2013 Jun 2013 Sep 2013 Dec 2013 Mar 2014 Jun 2014 Sep 2014 Dec 2014 Mar 2015 Jun 2015 Sep 2015 Dec 2015
Fork Convergence
Open Governance
Node.jsv4.0.0
Node.jsv0.10.0
Node.jsv0.12.0
© 2016 NodeSource
Node.js open governance
22
Node.js Open Governance • Managed by 65 “Collaborators”
(18 Core Technical Team “CTC” members)
• 9 individuals authorised to publish releases
• Contributors control and own the project
• No single point of failure
• Diversity of perspectives, backgrounds and expertise
© 2016 NodeSource
The Node.js core team
23
Ben Noordhuis Сковорода Никита Андреевич Chris Dickinson Colin Ihrig Evan Lucas Jeremiah Senkpiel Fedor Indutny James M Snell Michael Dawson
Julien Gilli Brian White Ali Ijaz Sheikh Alexis Campailla Bert Belder Rod Vagg Shigeki Ohtsu Trevor Norris Rich Trott
Anna Henningsen Andreas Madsen Benjamin Gruenbaum Brendan Ashworth Calvin Metcalf Claudio Rodriguez Domenic Denicola Wyatt Preul Rebecca Turner
Isaac Z. Schlueter Imran Iqbal Johan Bergström João Reis Julian Duque Minwoo Jung Aleksey Smolenchuk Matthew Loring Matteo Collina
Nicu Micleușanu Mikeal Rogers Christopher Monsanto Oleg Elifantiev Petka Antonov Phillip Johnsen Stephen Belanger Alex Kocharin Ryan Graham
Robert Kowalski Roman Klauke Saúl Ibarra Corretgé Sam Roberts Santiago Gimeno Nikolai Vavilov Roman Reiss Steven R Loomis Stefan Budeanu
Michaël Zasso Christian Tellnes Myles Borins Sakthipriyan Vairamani Glen Keane Thorsten Lorenz Mike Tunnicliffe Vladimir Kurchatkin Jeremy Whitlock
Yosuke Furukawa Kat Marchán
© 2016 NodeSource
Open governance & Node.js
Node.js uses a variant of OPEN Open Source • Two-tiered governance structure for making difficult
decisions
• CTC as a backstop, Collaborators for everything else
24
© 2016 NodeSource
Open governance & Node.js
Node.js CTC (Core Technical Committee) • Has a ¼ company membership rule
• Meets weekly to address concerns that have been elevated to it on GitHub
• Often pushes decisions back to Collaborators
• Is self-selecting
- Seeks diversity in perspective, skill and background
- Recognises technical and organisational merit
25
© 2016 NodeSource
Open governance & Node.js
Node.js Collaborators • Are effectively self-selecting—nominate new
members based on contribution
• Operate via pull request and discussion, require minimum sign-off but allow maximum input
• Must recognise objections and concerns and work in a consensus-seeking process, no railroading!
26
© 2016 NodeSource
Open governance & Node.js
Node.js Collaborators • Organically form interest and expertise groups
• Earn respect and deference from other Collaborators in different areas of the project, e.g.: - crypto - C++ - V8 - Windows - build / systems - testing - documentation - … even grammar!
27
© 2016 NodeSource
Node.js Foundation Structure
29
Executive
Community managerEducation coordinator
MarketingEvents
Commercial relationships and strategy
Assistance fromLinux Foundation
BoardMember company
representation
TSCTechnicalSteering
Committee
Technicaladministration byopen governance
Technical Team
HTTP WGStreams
WGAPI WG
BechmarkingWG
InclusivityWG
Node.js Core Project CollaboratorsCTC
Build WG
LegalCommittee
FinanceCommittee
MarketingCommittee
EducationAdvisory
Group
© 2016 NodeSource
Node.js Foundation Structure
30
TSCTechnicalSteering
Committee
Technicaladministration byopen governance
Technical Team
HTTP WGStreams
WGAPI WG
BechmarkingWG
InclusivityWG
Node.js Core Project CollaboratorsCTC
Build WG
© 2016 NodeSource
Core working groups
Working groups
Streams Benchmarking Build / infrastructure HTTP LTS Documentation Evangelism
31
Docker Post-mortem Intl and internationalisation Testing Website Addon API …
© 2016 NodeSource
Contributing: hints
Start in the shallow end
Lurk, learn the culture, watch for easy ways to
contribute
33
© 2016 NodeSource
Contributing: hints
Other entry points
Find a working group, contribute around the
outside of core
35
© 2016 NodeSource
Contributing: hints
Prepare for discussion
Be constructive, collaborate and prepare
for compromise
37
© 2016 NodeSource
Contributing: hints
Ask for help!
Learn from experts, they are willing to teach
38