Upload
rvagg
View
102
Download
0
Embed Size (px)
Citation preview
March 30, 2016
New Models in Open SourceRod Vagg @rvagg
© 2016 NodeSource
Who am I?
2
Who am I? • Recovering Former Java developer
• Current Node.js developer and cat herder
• Chief Node Officer @ NodeSource, Inc.
• Member of the Node.js TSC & CTC
• Open software governance aficionado
© 2016 NodeSource
Wut?
3
What this talk is about • What does the next generation of open source look like?
• Trends toward greater openness
• The Node.js journey; openness in the ecosystem influencing a new open governance model in core
• The role of leadership
• Challenges for companies
© 2016 NodeSource
Story time: NAN
4
© 2016 NodeSource
Story time: NAN
5
© 2016 NodeSource
Story time: NAN
6
© 2016 NodeSource
Story time: NAN
7
42 months of progress • From 287 LOC (1 file) to 6,148 LOC (17 files)
• From supporting Node.js 0.10 and 0.11 to supporting 0.8, 0.10, 0.12 (io.js 1, 2, 3), 4, 5, 6
• Depended on by every major C++ Node.js addon, 95th most downloaded package in npm
• Successfully navigated a major rewrite (v2)
• Adopted by Node.js core as the official solution for writing compatible C++ addons
© 2016 NodeSource
Open Governance
8
© 2016 NodeSource
Open source history
9
Open source history can be defined by its tools
© 2016 NodeSource
Open source history
10
SCM tools
CVS
Subversion
Git
© 2016 NodeSource
Open source history
11
Source code hosting, sharing & “social”
Wild West / self-hosted
SourceForge (and Freshmeat?)
GitHub
© 2016 NodeSource
CVS
SVN
Git
Self-hosted
SourceForge
GitHub
Open source history
12
Trend
Reduced collaboration frictionFocus on community / social
Openness and visibility
© 2016 NodeSource
Open source history
13
CVS
SVN
Git
What’s next?
Self-hosted
SourceForge
GitHub
What’s next?
© 2016 NodeSource
Open source history
14
With a trend toward reduced friction, increased community and greater openness,
the future of open source looks more like a wiki
© 2016 NodeSource
“OPEN Open Source”An example open governance model
15
© 2016 NodeSource
OPEN Open Source
16
“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.”
http://openopensource.org/
© 2016 NodeSource
OPEN Open Source
17
Basic guidelines • Don’t mess with Git history (master is sacred)
• Internal pull requests to solicit feedback are preferred, particularly for non-trivial 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
© 2016 NodeSource
Open Governance in Practice
18
© 2016 NodeSource
Open governance in practice
19
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 (companies and individuals) get influence: encourages participation
© 2016 NodeSource
Open governance in practice
20
Impact: better bus-factor & sanity for developers The individual drivers of a project can change smoothly over time
Key individuals can move on when they run out of steam
New individuals join and earn influence
Group dynamics adapt according to the make-up of the group at any point in time
© 2016 NodeSource
Open governance in practice
21
Impact: vision & roadmap become nebulous A project’s “vision” or “roadmap” exists as the intersecting interests and desires of those most willing and able to invest in the project at any point in time
© 2016 NodeSource
Open governance in practice
22
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
© 2016 NodeSource
Open governance in practice
23
Impact: focus on key areas by consensus-seeking The need to work toward consensus:
• Forces discussion of what really matters
• Highlights the areas of difference
• Encourages dialog with the other
© 2016 NodeSource
Open governance in practice
24
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
The Node.js Journey
25
© 2016 NodeSource
The Node.js journey
26
v0.10 represented a high-water mark for Node.js • Contributions peaked
• Engagement peaked
• Release frequency peaked
• Downloads peaked
• v1 was near!
© 2016 NodeSource
The Node.js journey
27
Toward stagnation instead of v1 • BDFL model began to be a hinderance
• Project stewardship under a single company limited avenues for contribution and skewed incentives
• Lack of technical progress
• Lack of communication and transparency around decision making
© 2016 NodeSource
Node.js in contrast to its ecosystem
28
# of packageshttp://modulecounts.com/
# of downloadshttps://twitter.com/seldo
© 2016 NodeSource
A desire for openness
29
A growing desire for openness Large sectors of the Node.js open source ecosystem were transitioning to greater openness and exploring new open governance models
Node.js core was frustratingly closed in comparison
© 2016 NodeSource
Node.js: v0.10 to v0.12
30
Com
mits
per
mon
th
0
100
200
300
400Re
leas
es p
er m
onth
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
Node.jsv0.10.0
Node.jsv0.12.0
© 2016 NodeSource
Node.js: v0.10 and beyond
31
Com
mits
per
mon
th
0
100
200
300
400Re
leas
es p
er m
onth
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
Forkio.js
ConvergenceNode.js Foundation
Node.jsv4.0.0
Node.jsv0.10.0
Node.jsv0.12.0
© 2016 NodeSource
Open Governance and Node.js
32
© 2016 NodeSource
Outcomes: open governance
33
Open Governance • Managed by 61 “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
Outcomes: open governance (the Node.js team)
34
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
Andreas Madsen Benjamin Gruenbaum Brendan Ashworth Calvin Metcalf Claudio Rodriguez Domenic Denicola Wyatt Preul Rebecca Turner Isaac Z. Schlueter
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 Nikolai Vavilov Roman Reiss Steven R Loomis 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
35
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
© 2016 NodeSource
Open governance & Node.js
36
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
© 2016 NodeSource
Open governance & Node.js
37
Node.js Collaborators • Are effectively self-selecting—nominate new members
based on contribution
• Operate primarily 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!
• Organically form interest and expertise groups
• Earn respect and deference from other Collaborators for different aspects of the project (crypto, C++, V8, Windows, debugging, build, testing, documentation, even grammar!)
© 2016 NodeSource
Open governance & Node.js
38
Node.js is self-sustaining • Better bus-factor than most: in terms of individuals and
corporate involvement
• Relationships and people-structures are dynamic and adjust over time
- People move on when their passion and interests fade
- New people join as they see needs and ways to make an impact
Natural community structures and evolution are harnessed for the long-term health of the project
© 2016 NodeSource
Open governance & Node.js
39
Node.js has guard rails • Collaborators answer to the CTC
• CTC reports to the TSC (Technical Steering Committee) which acts as an administrative facilitator
• TSC reports to the Node.js Foundation Board, although it has independence on the technical process
• Node.js Foundation Board answers to member companies
© 2016 NodeSource
The importance of leadership
40
© 2016 NodeSource
Leadership
41
The importance of leadership is directly proportional to the size
and complexity of a project
© 2016 NodeSource
Leadership
42
Leadership is important • Imposed leadership structures expose a project directly to
the absolute best and absolute worst of a leader
• A collaborative process rewards, encourages and capitalises on great leadership
• A collaborative process can guard against not so great leadership
• Quality leadership is rare but easily recognised
© 2016 NodeSource
Leadership
43
Earned leadership > imposed leadership
© 2016 NodeSource
Challenges for companies
44
Challenges for companies engaging in open source • How do you buy in to existing projects? Play a long-game of
influence building, buy existing talent?
• Asserting strong influence over roadmaps and requirements becomes increasingly difficult
• Finding audience for new projects becomes difficult without embracing openness
• The need for exercise of soft power is only increasing: leadership