my condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

17
6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand https://runcommand.io/2016/06/26/mycondolencesyourenowthemaintainerofapopularopensourceproject/ 1/17 runcommand (https://runcommand.io/) (https://github.com/runcommand) (https://twitter.com/runcommand) the fastest way to do anything with WordPress For Hosts (https://runcommand.io/forhosts/) For Agencies (https://runcommand.io/foragencies/) Pricing (https://runcommand.io/pricing/) My condolences, you’re now the maintainer of a popular open source project Daniel Bachhuber June 26, 2016 The following are my slides and notes from a talk I gave yesterday at WordCamp Europe. This is more or less what I said, but not exactly.

Upload: sk3342001

Post on 07-Jul-2016

11 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 1/17

runcommand (https://runcommand.io/) (https://github.com/runcommand) (https://twitter.com/runcommand)the fastest way to do anything with WordPress

For Hosts (https://runcommand.io/for­hosts/)For Agencies (https://runcommand.io/for­agencies/)Pricing (https://runcommand.io/pricing/)

My condolences, you’re now the maintainer of apopular open source projectDaniel Bachhuber ­ June 26, 2016

The following are my slides and notes from a talk I gave yesterday at WordCamp Europe.This is more or less what I said, but not exactly.

Page 2: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 2/17

I’d like to talk with you today about the emotional rollercoaster of maintaining an opensource project. More specifically, the emotional highs and lows you’ll experiencepublishing your code online.

But first, let’s start by taking a look at the bigger picture.

Marc Andreessen, creator of the Netscape web browser, famously said "software is eatingthe world." I’d like to posit that it’s actually open source software that’s eating the world,and I have a couple of data points to back me up.

First, a conclusion from the 2015 Future of Open Source survey(http://www.northbridge.com/2015­future­open­source­survey­results): “Seventy­eightpercent of respondents said their companies run part or all of its operations on OSS and66 percent said their company creates software for customers built on open source. Thisstatistic has nearly doubled since 2010.”

Second, Nadia Eghbal, who is doing really great research into the economics of opensource, calculated that “open source was worth at least $143M of Instagram’s $1Bacquisition (https://medium.com/@nayafia/open­source­was­worth­at­least­143m­of­instagram­s­1b­acquisition­808bb85e4681).”

Page 3: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 3/17

I think there are a few reasons for this Cambrian explosion of open source usage:

1. Open source is free to use, which means a company can spend money on people (akainnovation) instead of software licenses.

2. There are now a critical mass of reliable open source components, which acceleratesyour product’s time to market.

3. Open source produces quantitatively better software.4. Near and dear to me personally, open source permits companies to collaborate oncommon problems without complicated business agreements.

So open source is pretty huge. But what is it exactly?

"Open source" now means two things.

Clearly, there’s the official definition, a permissive license which grants certain freedomsto the end user.

But when people use "open source" today, they’re probably referring to building andcollaborating in public. In fact, they may not care about the license at all — over 80% ofprojects on Github don’t have an explicit license (https://github.com/blog/1964­open­source­license­usage­on­github­com).

Page 4: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 4/17

Why are so many people involved in open source? Well, for all of the business reasonscovered before. I also think it’s joyful to get to work with people of a variety of cultures andbackgrounds. Additionally, open source has given me a sense of permanence to mycareer, where the job I’ve taken from year to year has not.

There are a couple of different ways you can participate in open source.

Contributing is a form of short­term participation. You make a one­off or twice­offcontribution, and then your involvement is over.

Maintaining is taking long­term ownership over a particular aspect of a project. In thisequation I’ve produced, maintaining is greater than contributing both in level of reward,but also effort, commitment, and emotional involvement.

Let’s take a walk through the emotional journey of becoming a maintainer.

Page 5: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 5/17

When thinking about becoming a maintainer, you might be too embarrassed by your codeto publish it online. Here’s a little secret: everyone is embarrassed by their code. Beingembarrassed by your code is not an excuse not to publish your project and become amaintainer.

Page 6: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 6/17

In fact, publishing your project is a great excuse to learn. Posting your code online leadsto conversations about it you wouldn’t have had otherwise. When people come to useyour project, they’ll give you problems to solve that will help you grow as a developer.

Important to note: it’s a long, hard road to mastery — and the road never ends.

As the newly­minted maintainer of an open source project, you may feel discouraged youcan’t ever finish your releases. I used to feel this way too. I used to plan a release byadding a bunch of issues to a milestone, and work against the issues until they were alldone. However, a few to several to a dozen issues would always delay my Octoberrelease date into December, January, and February.

Page 7: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 7/17

With WP­CLI, I release new versions on a time­based schedule, and checklist the stepsinvolved in the release process. Philosophically, I believe users shouldn’t care aboutwhich version they’re on, only that they’re on the latest and greatest. In fact, I avoidassigning issues to milestones until they’re done, or if they absolutely need to be fixed.

To streamline the release process, I’ve adopted a consistent release note format, so Inever have to think about how they should be written. Similarly, I’ve created a checklist forthe release process (http://wp­cli.org/docs/release­checklist/), and scripted as much of itas possible.

Important to note: wrapping up a release still takes several hours you’ll need to find inyour schedule.

Page 8: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 8/17

As the maintainer of an open source project, you may feel overwhelmed by your issuebacklog. As your project becomes more popular, users will open up issues, and this willhappen at a greater rate than your ability to close them. At some point, you’ll hit the 400open issue mark and lose all hope.

Page 9: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 9/17

In maintaining WP­CLI, I do my best to triage, prioritize, and make decisions. I review thebacklog regularly, refining issues to ensure they have sufficient detail, assigning labels asnecessary, etc. I prioritize by only assigning myself on a few issues at a time. Lastly, Imake decisions — if an issue has been open for two years without any movement, thenit’s probably not important to fix.

Important to note: you’ll never get to zero, so you’ll need to come to grips with what is ahealthy number of open issues for your project.

As the maintainer of an open source project, you may get frustrated when issues turn intoflamewars. Text has a very low emotional density (http://5by5.tv/b2w/233). You and Ihaving a conversation across from one another has high emotional density; we have bodylanguage, facial expressions, and vocal intonation to support the words we’re saying.Text­based conversation, with its low emotional density, can easily lead tomisunderstandings.

Page 10: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 10/17

In maintaining WP­CLI, I do my best to be empathetic, respectful, and firm.

First, I do my best to try and understand where the user is coming from. I try to put myselfin their shoes, to figure out what they might be meaning that they aren’t necessarilysaying.

Second, I’m respectful of the fact they’re using some of their precious time to try andimprove my project. If they’re reporting a bug, it may be one that’s sunk a day or two oftheir time.

Lastly, being firm asserts myself as the authority on the subject, which sets the tone forthe conversation and reduces ambiguity.

Important to note: you’ll still need to develop a thick skin.

Page 11: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 11/17

As the maintainer of an open source project, you may feel overcommitted on your opensource involvement. People ask you to do things, and you say yes. Too many yesses leadto stress.

Page 12: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 12/17

In maintaining WP­CLI, I’ve discovered I need to make myself happy first, and set clearboundaries on my involvement. The best balance I’ve found is 2­5 hours per week, as apart of my normal work schedule. This keeps my involvement a passion, and from feelingtoo much like work. Because I prioritize the issues I’m working on, I can make regularprogress on what I think is most important.

Important to note: commitments are a constant balancing act.

As the maintainer of an open source project, you may feel all alone. This is a currentstruggle of mine with WP­CLI as I try to find a long­term future for WP­CLI(https://github.com/wp­cli/wp­cli/issues/2743) that isn’t wholly dependent on me. As fun asit is to be a benevolent dictator, I’m concerned about the project’s bus factor.

Page 13: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 13/17

With WP­CLI, I’m shifting my focus to leadership, and identifying opportunities for othersto be decision­makers with the project. More specifically, I am:

Identifying ways for people to be involved in the project (http://wp­cli.org/blog/future­wp­cli.html) that aren’t just code, with specific expectations for those roles.Writing more documentation for the project (http://wp­cli.org/docs/) than I think I need,knowing the documentation isn’t for me, who knows the project really well.Identifying “good first bugs (https://github.com/wp­cli/wp­cli/issues?utf8=%E2%9C%93&q=sort%3Aupdated­desc%20label%3Agood­first­issue%20)” asentry points into the codebase.Highlighting contributors in release notes (and tweets).

Important to note: You’ll never find all of the contributors you want, so you need to acceptand make use of what you have, which can be difficult.

So, where is all of this heading?

Page 14: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 14/17

WP­CLI is eating WordPress.

WP­CLI is becoming more and more embedded in the WordPress developer experience.It seems like there’s a WP­CLI session at every WordCamp these days.

With the command line, WP­CLI enables doing more with less effort. You can help WP­CLI eat WordPress by writing and maintaining custom commands.

Page 15: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 15/17

Just like WordPress has plugins, the future of WP­CLI is packages of commands(http://wp­cli.org/package­index/). For this future, I’m trying to proactively solve theproblems WordPress has with plugins:

Where WordPress plugins are considered second­class to what’s included in core, I’dlike WP­CLI packages to be considered first­class citizens amongst the commands inWP­CLI.All to often, WordPress plugins have just one author. I’d like for each WP­CLI packageto have two or three active maintainers.

We’re all aware that open source is an increasingly valuable part of the global economy.In this talk, I hope I’ve conveyed that, emotional rollercoaster aside, maintaining an opensource project can be a hugely rewarding part of your career.

When you decide to take the leap, I look forward to saying to you…

Page 16: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 16/17

Email address

runcommand (https://runcommand.io/)

About (https://runcommand.io/about/)For Hosts (https://runcommand.io/for­hosts/)For Agencies (https://runcommand.io/for­agencies/)Pricing (https://runcommand.io/pricing/)Contact (https://runcommand.io/contact/)

commands (9) (https://runcommand.io/commands/)

find­unused­themes (https://runcommand.io/wp/find­unused­themes/)

Sign up for updates

Subscribe

Page 17: My condolences, you’re now the maintainer of a popular open source project – runcommand.pdf

6/29/2016 My condolences, you’re now the maintainer of a popular open source project – runcommand

https://runcommand.io/2016/06/26/my­condolences­youre­now­the­maintainer­of­a­popular­open­source­project/ 17/17

precache (https://runcommand.io/wp/precache/)media sideload (https://runcommand.io/wp/media­sideload/)query­debug (https://runcommand.io/wp/query­debug/)user reset­password (https://runcommand.io/wp/reset­password/)

excerpts (5) (https://runcommand.io/excerpts/)

Share installed WP­CLI packages amongst multiple users on a server(https://runcommand.io/to/shared­wp­cli­packages/)Set an environment variable (https://runcommand.io/to/set­environment­variable/)

Made in by runcommand, LLC. • Github (https://github.com/runcommand) • Twitter (https://twitter.com/runcommand)