open source governance - the hard parts

79
Open Source Governance: The Hard Parts DevOpsDays Vancouver 2017 Nell Shamrell-Harrington @nellshamrell

Upload: nell-shamrell-harrington

Post on 11-Apr-2017

87 views

Category:

Technology


3 download

TRANSCRIPT

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

[email protected]

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 continuousintegration 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 replicatean 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

[email protected]

Nell Shamrell-Harrington