2. #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
🙋
3. #OSB16 | @KNITTYNERD | @HAIL_9000
WHO ARE THESE CATS?
Atton
Tali
Wendy
Jonesy
Cypress
✨
✨
✨
✨
✨
✨
🌸
❤ 💝
⭐
🎀 💖
🐈
4. #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
✨
5. #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
✨
6. #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
✨
8. #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
✨
9. #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
✨
10. #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
✨
11. #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
✨
13. #OSB16 | @KNITTYNERD | @HAIL_9000
PROVIDING SUPPORT AND FEEDBACK: CHALLENGES
▸ Technical mentorship
▸ Communication
▸ Saying no
✨
14. #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
✨
15. #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
✨
16. #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
✨
17. #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
✨
18. #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”
✨
19. #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!
✨
20. #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
✨