2020-03-03 Cross-Team PR Reviews Discussion
Date
Attendees
Goals
- Devise a plan to address the PR review bottlenecks created when multiple teams contribute to the same codebase
- See slack for additional details
Discussion items
Time | Item | Who | Notes |
---|---|---|---|
15 min | Review ideas posted in slack | Craig | |
40 min | Open Discussion | All |
|
5 min | Next steps / Action items | Craig | We're getting closer and agree on high level concepts, but need to get something concrete in place |
Action items
- Craig McNally Transcribe notes from slack (private channel) to wiki (here?)
- Craig McNally Call a follow-on meeting to sort out the details - tomorrow's tech leads meeting?
Background/Notes
The following was originally posted to the #cross-team-pr-reviews slack channel, but since that's a private channel I've transcribed it here for greater visibility.
Overview
Quality reviews require experience, domain knowledge, and time. In a cross-team situations like core-functional, contributors don't necessarily have all three and therefore reviews tend to fall to a handful of people.
Defining code owner lists seemed to help a bit, but since then many of those code owners have left the project. Maybe refresh these lists, though there's ramp up associated with that.
This is still an issue, though lessened a bit by the scaling back of capacity on the affected team(s)
Ideas
- Have someone allocate PRs for review.
- Whomever does this would need to be informed about each person's time, experience and domain knowledge. They would also need to track PRs throughout their lifecycle.
- This is not likely to be very popular
- It seems to me that the time spent on this is better used simply helping review PRs.
- (CAM) IMO this option should be off the table
- Rotation of PR review responsibilities among code owners
- The code owner lists need to be refreshed (should probably happen anyway)
- One or two volunteers to help with PR reviews each sprint? The challenge here is that this is spread across multiple teams - when/how does this coordination happen? Maybe it's up to the teams to designate a single person each sprint to help with PR reviews (for teams that are contributing to a given domain, e.g. circulation?).
- (CAM) Given the cross-team aspect of this I'm not sure how feasible this will be.
- Restructure/Rebalance teams to avoid the cross-team aspect of this.
- Do this periodically (every 3mo? 6mo?) based on planned work.
- Would allow the problem to be handled within the team like other teams do (e.g. acquisitions).
- Example: Acquisitions has two volunteers each sprint to help the tech lead review/verify stories before they're closed.
- Managing something like this is much easier if it's contained to a single team - e.g. can be decided at sprint planning and evaluated during retrospective for effectiveness
- This may require a greater level of communication between teams – maybe joint grooming sessions for features that span between the two teams… or maybe it’s something like ERM/Acquisitions/Inventory have done with the app-interaction group, which meets regularly (mostly at the SIG/PO/tech lead level and less so at the developer level).
- (CAM) After speaking with Mark V., this is very unlikely to happen
- Provide additional capacity where needed.
- Allocate an additional "dev lead" for core functional that would help the tech lead w/ PR reviews
- (CAM) Not sure how likely this is, or how it scales.
- The tech lead from each team is responsible for reviewing PRs created by their team, regardless of the repository.
- This can be delegated to a backend/frontend lead, but the responsibility ultimately lies with the tech lead.
- In order for this to work and for tech leads to trust one another, it needs to be clear what goes into a quality PR review. PR checklists need to be rolled out and used. Additional documentation may be needed … What to look for, Level of detail, tips/tricks, etc.
- Publish a list of teams and their structure and areas they work in and keep it up to date! Zak commented that he doesn’t necessarily know who’s working in a particular area/repository
- Tech leads must have a succession plan. My understanding is that the EPAM teams already do this. When a tech lead leaves is replaced, their successor must understand what their responsiblities are, update the list above, etc.
- I'm guessing there will be a learning curve in some places like circulation - maybe having the tech leads for teams that contribute to circ should "shadow" Marc for a PR or two - maybe do the review together on a call or something? IDK just a thought.
- (CAM) I personally think this is where we should go with this... make it policy, make it clear to the tech leads that this is a new requirement, and educate all the tech leads as needed