Open Source Governance:
The Hard Parts
DevOpsDays Vancouver 2017
Nell Shamrell-Harrington
@nellshamrell
What do you think of when
you hear
Open Source?
What makes a project
Open Source?
Open Source Governance - The Hard Parts @nellshamrell
Uploading a project to
Github is easy…
Successfully governing
a project is much harder
Technical and
communication skills are
intertwined
Parts of open source that
touch both technology and
humanity are the hardest…
…but they are also
the most vital
Successful Open Source
governance is never
easy, but it is possible
@nellshamrellOpen Source Governance - The Hard Parts
• Sr. Software Engineer at Chef Software
• Open Source Contributor and Maintainer
• Supermarket
• Habitat
• @nellshamrell
• nshamrell@chef.io
Nell Shamrell-Harrington
Duties of
Open Source Governance
@nellshamrellOpen Source Governance - The Hard Parts
• Make it easy to contribute
Duties of Open Source Governance
@nellshamrellOpen Source Governance - The Hard Parts
• Make it easy to contribute
• Assist users of the project
Duties of Open Source Governance
@nellshamrellOpen Source Governance - The Hard Parts
• Make it easy to contribute
• Assist users of the project
• Manage contributions to the project
Duties of Open Source Governance
First Duty:
Make it easy to
contribute
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
But what happens
between these two steps?
(Hint: a lot)
@nellshamrellOpen Source Governance - The Hard Parts
• Setting up a development environment
Hard parts
@nellshamrellOpen Source Governance - The Hard Parts
• Setting up a development environment
• Testing changes
Hard parts
“Just don’t use x”
is the wrong answer
Use a virtual
workstation
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
User Workstation
Vagrant
Development
Environment
$ vagrant ssh
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
User Workstation
Docker
Container
Development
Environment
$ docker run
You must support
the development
environment
After making
a change…
Comes testing
that change…
Use a continuous
integration environment
for testing
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
Consistent development
and testing environments
are hard, but possible
Second Duty:
Assist users of the
project
Open Source Governance - The Hard Parts @nellshamrell
@nellshamrellOpen Source Governance - The Hard Parts
• Replicating an issue
Hard parts
@nellshamrellOpen Source Governance - The Hard Parts
• Replicating an issue
• Dealing with an upstream issue
Hard parts
How do you replicate
an issue in a different
environment?
Open Source Governance - The Hard Parts @nellshamrell
Open Source Governance - The Hard Parts @nellshamrell
What might be obvious to
a maintainer is not
always obvious to a user
What if the issue is
actually with an
upstream project?
If it manifests in
your project, it is
your problem
@nellshamrellOpen Source Governance - The Hard Parts
• Communicate it to the maintainers of
the upstream project
Dealing with an upstream issue
@nellshamrellOpen Source Governance - The Hard Parts
• Communicate it to the maintainers of the
upstream project
• Communicate it to the person(s) who
filed the issue
Dealing with an upstream issue
@nellshamrellOpen Source Governance - The Hard Parts
• Communicate it to the maintainers of the
upstream project
• Communicate it to the person(s) who
filed the issue
• Update the issue in your project
regularly with progress
Dealing with an upstream issue
If the upstream maintainer
does not fix the issue,
change the dependency
Replicating bugs and
upstream issues are
hard, but possible
Third Duty:
Managing contributions
to the project
@nellshamrellOpen Source Governance - The Hard Parts
• Determining whether a contribution
adds value
Hard parts
@nellshamrellOpen Source Governance - The Hard Parts
• Determining whether a contribution adds
value
• Saying no when it does not
Hard parts
What adds value?
@nellshamrellOpen Source Governance - The Hard Parts
• Documentation (please!)
Add Value
@nellshamrellOpen Source Governance - The Hard Parts
• Documentation (please!)
• Typo fixes
Add Value
@nellshamrellOpen Source Governance - The Hard Parts
• Documentation (please!)
• Typo fixes
• Small bug fixes
Add Value
What does not
add value?
@nellshamrellOpen Source Governance - The Hard Parts
• Whitespace changes
Does Not Add Value
@nellshamrellOpen Source Governance - The Hard Parts
• Whitespace changes
• Large features (without talking to the
maintainer first)
Does Not Add Value
What sometimes
adds value?
@nellshamrellOpen Source Governance - The Hard Parts
• Small features (less than100 lines non-
test code)
Sometimes Add Value
@nellshamrellOpen Source Governance - The Hard Parts
• Small features (less than100 lines non-
test code)
• Large features (if you talk to the
maintainer first)
Sometimes Add Value
How do you tell whether
something adds value?
@nellshamrellOpen Source Governance - The Hard Parts
• Does it fix an existing issue?
How do you tell if it adds value?
@nellshamrellOpen Source Governance - The Hard Parts
• Does it fix an existing issue?
• Does it replicate work done
elsewhere?
How do you tell if it adds value?
@nellshamrellOpen Source Governance - The Hard Parts
• Does it fix an existing issue?
• Does it replicate work done elsewhere?
• Does it affect in progress work?
How do you tell if it adds value?
A contribution returns
negative value when it makes
other contributions harder.
When it does not
add value, communicate
and be supportive
Open source projects
live and die by
community engagement
Always, always,
always say thank you
Always, always,
always say why
Determining value and
communicating is hard,
but it is possible
Parts of open source that
touch both technology and
humanity are the hardest…
…but they are also
the most vital
Successful Open Source
governance is never
easy, but it is possible
Thank You
@nellshamrellOpen Source Governance - The Hard Parts
• Sr. Software Engineer at Chef Software
• Open Source Contributor and Maintainer
• Supermarket
• Habitat
• @nellshamrell
• nshamrell@chef.io
Nell Shamrell-Harrington

Open Source Governance - The Hard Parts