21
ENABLING OPEN SOURCE CONTRIBUTORS AT PUPPET MORGAN RHODES | @KNITTYNERD HAILEE KENNEY | @HAIL_9000

Enabling Open Source Contributors at Puppet

Embed Size (px)

Citation preview

ENABLING OPEN SOURCE CONTRIBUTORS AT PUPPET

MORGAN RHODES | @KNITTYNERD HAILEE KENNEY | @HAIL_9000

#OSB16 | @KNITTYNERD | @HAIL_9000

WHO ARE WE?

▸ Morgan

▸ Worked on modules team for 1.5 years focusing on open source contributions

▸ Currently works on the release engineering team

▸ Hailee

▸ Worked on various core open source teams at puppet on and off since 2012

▸ Currently works on the puppet platform team, one of the two teams largely responsible for community contributions

🙋

#OSB16 | @KNITTYNERD | @HAIL_9000

WHO ARE THESE CATS?

Atton Tali

Wendy

Jonesy

Cypress

🌸

❤ 💝

🎀 💖

🐈

#OSB16 | @KNITTYNERD | @HAIL_9000

WHY ARE WE GIVING THIS TALK?

▸ Hopeful our trials and tribulations will help others enable their own contributors

▸ Have a discussion about our own practices and how they can be improved

▸ We want to help make open source accessible

#OSB16 | @KNITTYNERD | @HAIL_9000

WHAT IS PUPPET?

▸ Puppet: The Software

▸ IT automation software

▸ Open Source and Enterprise Products

▸ Puppet code and functionality can be shared via modules

▸ Puppet: The Company

▸ Based in Portland, a few offices around the world, remote folks everywhere

▸ 400+ employees

#OSB16 | @KNITTYNERD | @HAIL_9000

OUR OPEN SOURCE SITUATION

▸ Two development teams responsible for open source contributions

▸ Modules - puppet modules

▸ Puppet Core - most open source puppet component

▸ ~ 10 developers engaged

▸ A pretty huge codebase

▸ Over 300 public repositories

▸ Distributed across many repos

#OSB16 | @KNITTYNERD | @HAIL_9000

COMMUNITY STATISTICS

▸ 2,529 total code developers

▸ 2,211 ticket participants

▸ 6,556 mailing list participants

▸ 24,110 IRC participants

▸ 2,663 Ask participants

▸ 1,535 module authors

#OSB16 | @KNITTYNERD | @HAIL_9000

CONTRIBUTIONS: A BRIEF HISTORY

▸ Basically nothing

▸ A person on rotation

▸ A dedicated “team”

▸ Split into “core” and “modules”

▸ Core: Actual Puppet and other FOSS components (puppet, facter, hiera, etc)

▸ Modules: Code to configure other software you use, like apache, apt, mysql, etc

▸ Community Rotation

#OSB16 | @KNITTYNERD | @HAIL_9000

OUR BIGGEST CHALLENGES

1. Balancing community work with other priorities

2. Providing support and feedback for contributors

3. Ensuring contributors have the resources they need to be successful

4. Emotional and mental challenges of open source work

#OSB16 | @KNITTYNERD | @HAIL_9000

PRIORITIZING COMMUNITY WORK: CHALLENGES

▸ Letting community work lag because x feature or y bug is more urgent

▸ Just forgetting, especially if discussion of community work isn’t part of the day to day conversation

▸ Missing something depending on the frequency of incoming tickets, pull requests, and comments

▸ Internal processes and policies conflict with what the community wants

#OSB16 | @KNITTYNERD | @HAIL_9000

PRIORITIZING COMMUNITY WORK: LESSONS LEARNED

▸ Triage rotations - designated people dedicated to community work

▸ Regular (weekly or biweekly) meetings to address community work

▸ Tracking community work in a public place

▸ Clearly defining community work as part of your team’s responsibilities

▸ Be upfront when setting expectations with the community

#OSB16 | @KNITTYNERD | @HAIL_9000

AUTOMATED TOOLS! 🎉

#OSB16 | @KNITTYNERD | @HAIL_9000

PROVIDING SUPPORT AND FEEDBACK: CHALLENGES

▸ Technical mentorship

▸ Communication

▸ Saying no

#OSB16 | @KNITTYNERD | @HAIL_9000

PROVIDING SUPPORT AND FEEDBACK: LESSONS LEARNED

▸ Give contributors a chance to speak with you face to face

▸ Know where people commonly get hung up and be willing to step in

▸ Be present and available on multiple channels

▸ Be consistent in the requirements for contribution

▸ Be accountable when you make mistakes

#OSB16 | @KNITTYNERD | @HAIL_9000

ENSURING CONTRIBUTORS HAVE RESOURCES: CHALLENGES

▸ Effectively communicating our contribution process

▸ Helping beginners get started

▸ Enabling community members to help each other

#OSB16 | @KNITTYNERD | @HAIL_9000

ENSURING CONTRIBUTORS HAVE RESOURCES: LESSONS LEARNED

▸ Clearly documenting our process in a place that’s easy to find

▸ Gather self teaching resources

▸ Hackathons to help people get involved

▸ Beginner and experienced contributor friendly 👌

▸ Investing time in growing community champions

▸ Help spread our knowledge to leaders in the community to help them empower others

#OSB16 | @KNITTYNERD | @HAIL_9000

EMOTIONAL AND MENTAL TOLL: CHALLENGES

▸ Open source never sleeps

▸ There are people who believe that you have no idea what you’re talking about

▸ You will inevitably disappoint someone

#OSB16 | @KNITTYNERD | @HAIL_9000

EMOTIONAL AND MENTAL TOLL: LESSONS LEARNED

▸ Have an outlet when you need to vent at work

▸ It’s OK to step back if you need to

▸ Practice honest but kind ways to say “No”

#OSB16 | @KNITTYNERD | @HAIL_9000

SOME GENERAL ADVICE

▸ Be honest with yourself and your community. Communicate reality, not what you wish reality was

▸ Don’t be afraid to keep iterating on your process

▸ Things are always in flux and you’ll have to adjust

▸ If something in your process doesn’t “feel right”, talk about it and fix it

▸ It’s okay to go back to things you previously abandoned, your needs are always changing

▸ Get to know your contributors!

#OSB16 | @KNITTYNERD | @HAIL_9000

IN SUMMARY

▸ Open source maintenance is hard

▸ Processes need to always be evolving

▸ Working on process improvements helps to make it easier for contributors to get started in your community and makes work easier for maintainers

THOUGHTS AND QUESTIONS?

#OSB16 | @KNITTYNERD | @HAIL_9000