Keeping the Community Healthy

The introduction pointed out that Trusted Committers have both tech-oriented and community-oriented responsibilities. It is not sufficient to focus on code and code health only. To ensure success in the long run, Trusted Committers should strive to keep the community building the software healthy as well. Because of that, they must strike a good balance between ensuring product quality and growing a healthy community.

What does a healthy community look like? Quite simply, in a healthy community, Contributors tend to stick around, can spend most of their time developing software, and are able to level up their abilities. As a result, a healthy community will be continually growing.

Why do Contributors join and stick around in a community? Some do because they subscribe to the purpose or the mission of the community. It is the Trusted Committer’s job to clearly articulate and promote this purpose. The importance of this is often not recognized, but marketing a community and its products is truly essential.

Another, more obvious reason for people to stick around is that they enjoy working with other members of the community, including the Trusted Committers. A thriving community is one where members treat and communicate with each other with the utmost respect. Contributions are treated like gifts or donations rather than distractions, and excellent (especially first) contributions are lauded. The Trusted Committer’s job in all this is primarily to set an example for others, similar to setting an example for the level of software quality expected. If necessary, the Trusted Committers are the ones who should create and enact a code of conduct for the community. If there are community members whose behavior is detrimental or toxic to the community’s health, it is the Trusted Committer’s responsibility to address this. Trusted Committers should create opportunities for people to get together regularly (in person or virtually), get to know each other personally and to peacefully resolve conflicts as they arise.

People also tend to stick around because working in an InnerSource community is an excellent opportunity to acquire new skills and to grow personally. This is again where the role of the Trusted Committer is really important. Trusted Committers often become mentors for junior developers, and explicitly spend time during pull requests not only pointing out areas for improvement but also explaining in detail why something needs to be improved and how to do it. They supply the theory or experience behind the change and offer suggestions for the best ways to implement it. By doing so, Trusted Committers can increase the speed of learning in their communities far beyond that in traditional software development projects.

We believe that Trusted Committers should prioritize onboarding and mentoring during pull requests over reaching communicated release dates, unless there is a very good reason not to. Good mentoring during pull requests leads to a higher level of trust and engagement by Contributors, which in turn leads to more contributions. We’ll discuss this more in "Upleveling the Community".

Finally, some people stick around in InnerSource communities because they get to focus on developing software instead of activities considered overhead or waste, especially common in large companies with a strong focus on processes. The Trusted Committer’s job in this context is to ensure that Contributors can actually focus on their projects by communicating and enacting helpful contribution guidelines.

One important aspect of these guidelines is to explain what we call signaling in pull requests: what should a comment look like? What does it mean if I like or +1 a comment? How is @mentioning someone with a /CC prefix different from using a /FYI prefix? Generally speaking, Trusted Committers need to make sure that the contribution process does not create more problems, but instead supports the community in identifying and solving problems. Ultimately, Trusted Committers should empower their community to find process-related problems and to adapt and improve them as a community as much as possible.

For Trusted Committers to be able to fulfill all these responsibilities, it is important that they communicate regularly with community members and keep an ear to the ground. We’ll go into more detail about this in the section in "Advocating the Community’s Needs".

In summary, Trusted Committers should strive to create a welcoming and appreciative environment for their Contributors that allows them to concentrate on writing software and growing personally by creating opportunities to learn from other community members.

Contributors