Google software engineer Jessica Frazelle on the life of a large scale open source project


[ad_1]

Tips and tools for building and nurturing open source contributors, maintainers, and supporters, from someone who’s been there.

Google software engineer Jessica Frazelle on the life of a large scale open source project

Google software engineer Jessica Frazelle is an experienced open source contributor, having participated in Docker, Go, Kubernetes, and the Linux kernel. Over time, she’s spotted a number of tools and tips for building and nurturing large open source projects, which she shared in her talk at OSCON 2017, The Life of a Large-Scale Open Source Project.

Here are some of the points she shared.

Tips for getting and retaining contributors

  • Create help-wanted labels on your issue tracker. Explicitly marking some issues as newbie-friendly can draw new activity and help new contributors grow.
  • Be aware of any internal decision-making dynamics. If a project originated inside a company, there may be internal discussions about the project that should be openly shared.
  • Define non-code contributions. We all know that docs are needed, but loudly saying so can help encourage contributors.
  • Value positive reinforcement to turn new contributors into repeat contributors.
  • Be respectful of contributors’ time.
  • Clearly define processes for people officially becoming contributors and maintainers. If someone wants to get into project maintenance, they need a defined promotion path.

Tips for nurturing maintainers

  • Create explicit guidelines for acceptable patches and release cutoffs.
  • Encourage frequent contributors to take on more responsibility.
  • Distribute control, starting with low-risk items.
  • Governance is crucial—and also one of the hardest things to do well! The ability to change those in power should not lie with those in power.

Dealing with inevitable vulnerabilities

  • Define a process for dealing with vulnerabilities, and make it public!
  • Make sure users know when and how to upgrade in a way that won’t break their world.
  • Keep bug reporters and researchers informed; once you have them in the loop, you don’t want them going rogue! Do this well, and some might become contributors.
  • Do not compromise on disclosure dates so that someone can give a talk at a conference. Stick to the process in all cases.
  • Define what happens when the process fails because—at some point—it will.

Dealing with the companies that support the project

  • What happens to fiery passion when it is fueled by a paycheck from a company? It’s still possible, but be honest about it.
  • Encourage companies to hire from the community.
  • Maintainership must be earned. Make new hires play by the same rules.
  • Allow saying “no.”
  • “Looks good to me” patches last forever—keep the trust of the community, and treat all patches fairly. Patches are tied to individuals, not companies.
  • Love your corporate overlords for funding you. Find a balance between corporate and community needs—collaboration and compromise are the key.

What lessons have you learned from working on open source projects? Share your tips and tricks in the comments.

[ad_2]

Source link

,

Leave a Reply