InnerSourceCommons / InnerSourcePatterns

Proven approaches that can guide you through applying open source best practices within your organization
https://patterns.innersourcecommons.org
Creative Commons Attribution Share Alike 4.0 International
728 stars 177 forks source link

[Pattern Draft] Maintainer Apprentice #670

Open jmeridth opened 3 months ago

jmeridth commented 3 months ago

Title

Maintainer Apprentice

Patlet / Summary

A user wants to work their way into becoming an Approver/Maintainer on an InnerSource repository while being given enough permissions to prove their contributions.

Problem

Sometimes a repository may want to "onboard" maintainers without giving them full write access. This means they are added to a repository to provide content/changes and able to "approve" other changes but not merge them. This could be a form of onboarding or internship on the way to approver or maintainer roles.

Context

From @spier in #669

...our idea with the lower section of the CODEOWNERS file was, that those folks doing the translation work might sort of be "maintainer apprentice", and through their involvement in the project become maintainers eventually

In this particular situation the user was in the CODEOWNERS file but did not have write permissions on the repository. This caused GitHub to label the CODEOWNERS file as having errors.

image

Forces

What could make this problem difficult?

Tradeoff(s):

Solutions

Any of the following:

Resulting Context

What is the situation after the problem has been solved? The original context is changed indirectly by way of the solution. Often this section can include discussion of the next possible Patterns/problems introduced. This section can be short in content - the solution may not introduce new problems or change much context.

Known Instances (optional)

669

Status

Initial

Author(s) (optional)

@spier @jmeridth

jmeridth commented 2 months ago

Closing due to no interaction

spier commented 2 months ago

Hi Jason.

I noticed you closed this pattern draft due to inactivity.

Had two reactions to it:

  1. kind of cool - in terms of cleaning up things in GitHub (I don't always do myself when opening issues/PRs)
  2. kind of sad - as you got no reaction from anybody, other than me in discussions that happened before opening the PR

Activity in our patterns community varies quite a bit at different times. Also it seems like some people only engage via Slack, others only via GitHub. Lastly, some conversions need to be started and restarted multiple times until something interesting happens :)

Therefore I will try to post this topic one more time in Slack, to see if anybody engages.

spier commented 2 months ago

Some more thoughts on this:

  1. In our patterns repo we used the "maintainer apprentice" idea only for people that were contributing to the translations of our patterns. You could argue that this is almost a "side project" i.e. there is (a) the creating of new patterns in English, and (b) the translation of the existing patterns to other languages.
  2. We don't really have proof that the path of leveling up those "maintainer apprentices" into full "maintainers" through this process.
  3. While our patterns repo is open source (not InnerSource), we believe that mostly the same effects apply in this area. If at all, we hope it might be easier in a corporate context to level up people to truster committer / maintainer more quickly then in open source, as you have more established relationships with them already
michael-basil commented 2 months ago

Within Dojo from SAP we leverage the concept of Senpai. This person effectively becomes a Sensei apprentice (our Sensei are project admins). They gain write access to the repository and take on some responsibilities within GitHub and the social community at large.

We have our Sensei and Senapi in GitHub teams.

The high level approach is described in the blog article below:

Before they could become a Senpai they have to have made their green level demonstration through a belt claim (captured as a GitHub pull request). This is not so easy to do and acts as a filter.

I believe this qualifies as a known instance for SAP. @dellagustin, would you know of other known instances at SAP?