Skip to content
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

[Pattern Draft] Managing capacity for reviewing contributions #692

Merged
merged 26 commits into from
Jan 3, 2025
Merged
Changes from 7 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1deb38d
First draft: Managing capacity for reviewing contributions
tsadler1988 Jun 12, 2024
6cc70c2
Auto-fix for markdownlint issues
spier Jun 12, 2024
e357e1f
Fixing various spellings/typos
spier Jun 12, 2024
0762eae
Removing empty template section
spier Jun 22, 2024
ca9941f
Marking status as "Initial"
spier Jun 22, 2024
94a9ac6
Fix section title
spier Jun 22, 2024
1f5eec4
Replacing delivery manager with project manager
spier Jun 22, 2024
124922f
Update patterns/1-initial/capacity-for-contributions.md
tsadler1988 Jun 24, 2024
3502897
Rewording
spier Jun 24, 2024
47ef2ce
Use 'host team' for consistency of terms
tsadler1988 Jun 24, 2024
f4bdb57
Expand solution to include contributors giving early visibility of co…
tsadler1988 Jun 24, 2024
d9d5e28
Add note in forces around preferring smaller PRs
tsadler1988 Jun 24, 2024
17b0f76
Capitalise Agile
tsadler1988 Jun 24, 2024
a9382a1
Add note on smaller contributions being reviewed ad-hoc
tsadler1988 Jun 24, 2024
d185cf6
Recognise potential pitfalls in prioritisation
tsadler1988 Jun 24, 2024
827de52
Add reviewers to Acknowledgments
tsadler1988 Jun 24, 2024
cc2aa4b
Fix linting
tsadler1988 Jun 24, 2024
58521a7
Formatting
spier Dec 29, 2024
facb787
Simplify wording
spier Dec 29, 2024
3e0bb1c
Formatting - splitting into multiple bullets
spier Dec 29, 2024
adb7cc0
Camel Casing
spier Dec 29, 2024
40b2595
Adding link to this pattern to the README
spier Dec 29, 2024
eb957b2
Merge branch 'main' into capacity-for-contributions
spier Dec 29, 2024
34ca968
Removing trailing whitespace
spier Dec 29, 2024
36465d6
Split Context into multiple bullets
spier Dec 29, 2024
f2d0043
Generalize the story
spier Jan 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions patterns/1-initial/capacity-for-contributions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## Title

Managing capacity for reviewing contributions
spier marked this conversation as resolved.
Show resolved Hide resolved

## Patlet

Reviewing InnerSource contributions takes time and effort. This should be reflected in capacity planning, especially for larger contributions. Expectations and available capacity should be transparent so that contributors understand when their contributions will be reviewed and released.
spier marked this conversation as resolved.
Show resolved Hide resolved

## Problem

Large InnerSource contributions are causing delays to other work in the team and/or contributions are taking longer to be released than expected. Reviewing contributions may be significant invisible work, not tracked in a team's agile development process.
spier marked this conversation as resolved.
Show resolved Hide resolved

## Story

The BBC's connected TV application are built by a number of teams, each with different areas of responsibility. They work on each other's areas of the codebase via InnerSource on a regular basis.
spier marked this conversation as resolved.
Show resolved Hide resolved

The team responsible for the build process for the JavaScript bundles received a major pull request, changing how dependencies were bundled. This PR introduced a new build time dependency, a new structure to the deployed JavaScript bundles, and touched 503 files, with 6,699 lines of code added and 2,828 lines of code deleted. A contribution of this size required significant time to code review, test, and ensure the team understood the new tooling and structure introduced. Normally, InnerSource contributions would be reviewed ad-hoc, but the team estimated that this review process would take days rather than hours. Reviewing this PR would have delayed the team's other work, so the team raised this with the team lead, delivery manager, and product manager, to prioritize this work against other work. Time was set aside to review this contribution at future date.
tsadler1988 marked this conversation as resolved.
Show resolved Hide resolved

This process was formalized in the team:

* Larger contributions have a ticket created on the team's backlog and included in prioritization discussion alongside other tickets. The contributor will be informed of the priority call and given an estimate as to when it will be reviewed and released.
spier marked this conversation as resolved.
Show resolved Hide resolved
spier marked this conversation as resolved.
Show resolved Hide resolved
* Smaller contributions can still be reviewed ad-hoc.

## Context

Maintainers of a successful InnerSource project are finding it difficult to review contributions, especially large contributions. They do not want to disrupt their team's other work, but also want to support contributions by reviewing/releasing them in a timely fashion.

## Forces

* Contributors expect timely feedback on their contributions
* Maintaining team are expected to deliver other work alongside reviewing contributions
* Missing communication between contributors and maintainers on expectations/lead time for contributions to be reviewed/released
* Tension in prioritizing InnerSource contributions against other work

## Solutions
spier marked this conversation as resolved.
Show resolved Hide resolved

* Reviewing larger contributions is tracked in the team's ticketing system/bug tracker (e.g. Jira, GitHub issues)
* Maintaining team is given time to review larger contributions in team capacity planning
spier marked this conversation as resolved.
Show resolved Hide resolved
* Reviewing contributions is prioritized against other work (e.g. in sprint planning)
* Maintainers communicate their capacity for reviewing contributions, the priority of contributions, and an estimate of when a contribution will be reviewed/released
* Maintaining team has a service level objective (SLO) (e.g. 2 working days) for contributions receiving initial feedback
Copy link
Contributor

@michael-basil michael-basil Jun 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love the SLO because it creates productive back pressure, transparency and utility for the development team, product owner, scrum master and project management personnel.

It also layers into moving in alignment with DevOps / SRE / Observability approach.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on the SLOs - not only does that create back pressure - it also helps communicate to contributors what expectations can be wrt. to response times. Especially inside of companies those can vary greatly between teams.

Btw. what I found helpful for host teams is to track "time to initial response" - https://github.com/github/issue-metrics (I found that metric way more helpful than something like time to close - time to first response is something you can easily optimise. Time to close not so much because minimising that tends to have nasty side effects.)


## Resulting Context

Maintaining team understands the overhead of reviewing large contributions and is given capacity to do so. Project manager and product managers are better able to plan, estimate, and track other work in the team by accounting for the time taken to review InnerSource contributions. Contributors understand when their contribution will be reviewed and released, and how long before the maintainers will provide initial feedback.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree that product and project managers are the best people to filter this before a large PR hits the team unaware. Would be curious to chat and understand the intake process better and what part of that may/may not be working right now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I'm making an assumption that there's a foundation of contributions being valued, and even if they are it could be difficult to prioritise them against other work. Some teams may go to the extreme of having a policy of 'merge every contribution' whereas others will be pickier.

It might also be good to specifically call out that smaller PRs are still dealt with ad-hoc - IMO we wouldn't want smaller PRs being blocked by bureaucracy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That matches my observations as well: Small changes tend to be smooth. It is larger changes, either as one PR or multiple ones that are related that cause tension.


## Known Instances

BBC iPlayer & Sounds
spier marked this conversation as resolved.
Show resolved Hide resolved

## Status

Initial

## Author(s)

Tom Sadler

## Acknowledgments

Clare Dillon