-
Notifications
You must be signed in to change notification settings - Fork 196
New Pattern: Core Team #345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
0c94ea5
Create core-team.md
rrrutledge 340cf29
Update core-team.md
rrrutledge f5b08b5
Update core-team.md
rrrutledge ae73361
Update core-team.md
rrrutledge 5184269
Update core-team.md
rrrutledge 89d79fb
Add status block
spier dcac472
Fix linter issue
spier fe3a71b
Fix linter issue
spier ae6a8ad
Respond to PR feedback
rrrutledge 06fcfec
Adjust spacing.
rrrutledge 4443ac8
Apply suggestions from code review
rrrutledge 6b88f12
Update patterns/2-structured/core-team.md
rrrutledge dd03d97
Fix typo
spier 9a9cbd7
Fix typo
spier 7aa3bcf
Fix typo
spier e00ed31
Fix typo
spier 222750a
Update core-team.md
rrrutledge 462a4d6
Update patterns/2-structured/core-team.md
rrrutledge ce6196e
Merge two forces into one.
spier File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
## Title | ||
|
||
Core Team | ||
|
||
## Patlet | ||
|
||
Even when an InnerSource project is widely needed, contributions and usage may be hindered because the project is difficult to work with. | ||
Establish a core team that is dedicated to take care of the project's fundamental items. | ||
Their work enables contributors to add and use the features that provide value to their scenarios. | ||
|
||
## Problem | ||
|
||
* It is difficult to contribute to the project. | ||
This could be due to things like: | ||
* Can't run the project locally. | ||
* Poor documentation. | ||
* Convoluted code. | ||
* Inadequate testing. | ||
* It is difficult to use the project. | ||
Some possible causes: | ||
* Poor documentation (again). | ||
* Frequent bugs. | ||
* Unintuitive setup. | ||
|
||
## Story | ||
|
||
There's a central project that everyone depends on. | ||
What a great candidate for InnerSource! | ||
Unfortunately, the project has grown organically, with various contributions and additions slapped on haphazardly. | ||
Now it's an icky, thick morass of code that no one understands and everyone is afraid to touch. | ||
It's clearly due for an overhaul (e.g. refactoring, testing, documentation, etc.), but even though everyone needs and wants that work to happen, no one takes the time to do it. | ||
|
||
## Context | ||
|
||
* Many teams need the project. | ||
* The project has significant tech debt. | ||
* Slow adoption and iteration on the project. | ||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* There is not a owner or maintainer who takes reponsibility for the project and contribution ecosystem as a whole. | ||
|
||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||
## Forces | ||
|
||
* Every contributing team is busy, and therefore prioritizes work that results in an immediate payoff for themselves. | ||
* As the project grows the natural trend is for it to become more difficult to use and to modify. | ||
|
||
## Solution | ||
|
||
Form a core team whose job it is to maintain this project in a state so that others can easily onboard and contribute to it. | ||
This core team does the work that is necessary for a healthy usage and contribution ecosystem. | ||
This critical work tends to not be prioritized as a contribution. | ||
Categories of this type of work include communication, local environment, and DevOps infrastructure. | ||
|
||
Here are some specific examples: | ||
|
||
* Production bugs | ||
* Documentation | ||
* Onboarding tutorials and examples | ||
* Automated testing | ||
* CI/CD | ||
* Local environment | ||
* Modularization | ||
* Versioning | ||
* Monitoring | ||
* Trailblazing new classes/categories of features | ||
|
||
Each of these items is very important to a healthy product ecosystem, yet is unlikely to be prioritized as a contribution. | ||
|
||
The core team may be composed of a small number of people on a full-time or a part-time basis. | ||
The choice depends on the amount of work needed, the availability of resources, and the culture of the organization. | ||
The most important consideration is to form the team in a way that allows the organization to empower and hold them accountable in the same way as any other team. | ||
|
||
Due to their central role, core team members should nearly always fill the role of [Trusted Committers][tc] as well. | ||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||
While the [Trusted Committer][tc] role focuses mostly on facilitating others' contribution and use of the project, a core team member regularly contributes to the project as well. | ||
The core team doesn't have its own business agenda that determines its contributions. | ||
They decide what to work on based on what will help others most to use and contribute to the project. | ||
|
||
A good way to continually remind the core team of this goal is to have them report regularly on: | ||
|
||
* number of active teams using the project | ||
* number of off-team contributions to the project. | ||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Continual focus on these metrics will naturally drive the core team to prioritize generally the right work to create a thriving InnerSource ecosystem around the project. | ||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Resulting Context | ||
|
||
* It is easy to use and contribute to the project. | ||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* Many teams use and contribute to the project. | ||
* Core team has their success defined in terms of others' interaction with and response to their project. | ||
|
||
## Rationale | ||
|
||
Separating out a core team and tasking them in this way helps to fill the gaps that a successful project needs yet are left behind by contributors that are pursuing their own agenda only. | ||
The core team fills those gaps and greases the wheels so that the contribution ecosystem remains healthy. | ||
|
||
## Known Instances | ||
|
||
Nike implemented this pattern to manage the InnerSource effort around its reusable CI/CD pipelines. | ||
|
||
## Status | ||
|
||
Structured | ||
|
||
## Author | ||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
[Russell R. Rutledge](https://github.com/rrrutledge) | ||
|
||
[tc]: https://innersourcecommons.org/learn/learning-path/trusted-committer/ |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.