-
Notifications
You must be signed in to change notification settings - Fork 198
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
Changes from 9 commits
0c94ea5
340cf29
f5b08b5
ae73361
5184269
89d79fb
dcac472
fe3a71b
ae6a8ad
06fcfec
4443ac8
6b88f12
dd03d97
9a9cbd7
7aa3bcf
e00ed31
222750a
462a4d6
ce6196e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,107 @@ | ||||||
## Title | ||||||
|
||||||
Core Team | ||||||
|
||||||
## Patlet | ||||||
|
||||||
Even when an InnerSource project is widely needed, contributions and usage may be stymied because the project is difficult to work with. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
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, no one takes the time to do it. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Context | ||||||
|
||||||
* Many teams need the project. | ||||||
* Significant tech debt. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
* Slow adoption and iteration on the project. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
* Nobody is taking reponsibility for the project and contribution ecosystem as a whole. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Incorporated this feedback. What do you think? |
||||||
|
||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
## Forces | ||||||
|
||||||
* Everyone is busy. | ||||||
* Each contributing team prioritizes work that results in an immediate payoff for that team. | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
* 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. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
This critical work tends to not be prioritized as a contribution. | ||||||
Catogories of this type of work include communication, local environment, and devops infrastructure. | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Pure formatting question: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In the Problem section the bullets are finishing the sentence that is started before the colon. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I removed them from this list. |
||||||
|
||||||
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 availibility of resources, and the culture of the organization. | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
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] as well. | ||||||
While the [Trusted Committer] role focuses mostly on facilitating others' contribution and use of the project, a core team member regularly contributes to the project as well. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
The core team doesn't have its own business agenda that determines its contibutions. | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
They decide what to contribute based on what will most help others to use and contribute to the project. | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
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 implented this pattern to manage the InnerSource effort around its reusable CI/CD pipelines. | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Status | ||||||
|
||||||
Structured | ||||||
|
||||||
## Author | ||||||
spier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
[Russell R. Rutledge](https://github.com/rrrutledge) | ||||||
|
||||||
[Trusted Committers]: https://innersourcecommons.org/learn/learning-path/trusted-committer/ | ||||||
[Trusted Committer]: https://innersourcecommons.org/learn/learning-path/trusted-committer/ | ||||||
rrrutledge marked this conversation as resolved.
Show resolved
Hide resolved
|
Uh oh!
There was an error while loading. Please reload this page.