Skip to content

Latest commit

 

History

History
80 lines (70 loc) · 5.87 KB

03-keeping-the-community-healthy.asciidoc

File metadata and controls

80 lines (70 loc) · 5.87 KB

Keeping the community healthy

The introduction points 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 for keeping the community which is building the software healthy as well. Because of that, they must strike a good balance between effort spent on 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 on developing software and are able to level up their abilities. As a result, a healthy community will also be 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 - marketing a community and their 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. In my experience, what this comes down to is that community members treat and communicate with each other with utmost respect. Contributions are treated as like a gift or a donation, rather than something that detracts from their own work and they laud excellent and especially first contributions. The Trusted Committer’s job in all this is primarily to set an example for others, similarly to setting an example for the level of software quality that is expected. If necessary, the Trusted Committers are the ones who should create and enact a code of conduct for the community. Should there be community members whose behavior is detrimental or even toxic to the community health, it is the Trusted Committer’s responsibility to either try and change or contain this or, in the worst case, to remove people from the community. Trusted Committers should create opportunities for people to get together regularly and get to know each other personally.

Another reason for people to stick around is that their work in an InnerSource community was 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 they explicitly spend time during pull requests not only to point out areas for improvement but also explain in detail why something needs to be improved. This explanation includes the theory or experience behind it and offering suggestions on how it is best done. By doing so, the Trusted Committers will often be able to increase the speed of learning in their communities far beyond what is common 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. Trusted Committers do this because they understand the virtuous cycle: good mentoring in pull requests leads to a higher level of trust and engagement on part of the Contributors which in turn leads to more people willing to make contributions and thus more contributions. We’ll discuss more about this in the segment in "Upleveling the Community".

Finally, some people stick around in InnerSource communities because they get to focus on developing software and to spend as little time as possible on activities which are considered overhead or waste, common especially in large companies with a strong focus on processes. The Trusted Committer’s job in this context is to ensure that Contributors can actually do that and generally to keep things running smoothly. This includes communicating and enacting helpful contribution guidelines.

One important aspect of these is to explain what I 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 doing so with a /FYI prefix? Generally speaking, Trusted Committers need to make sure that the contribution process uncovers problems, rather than being the cause of them. Ultimately, Trusted Committers should empower their community to point out 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 so to speak, so that they are aware of the community’s needs. 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 to grow personally by creating opportunities to learn from other community members.