Core Platform Team/PET Work Processes/Taking part in Clinic Duty

Expanding Clinic Duty
We want to provide space and support for other teams to also take advantage of our Clinic Duty.

Our goals are to:

 * Prioritize and complete bug fixes, maintenance, and performance tasks important to your team
 * Get you quicker code review on tasks you are working on that need input from CPT
 * Provide knowledge sharing on our areas of expertise
 * Share maintenance of components (through having other teams share knowledge and work on some tasks with us)

Clinic Duty Purpose
The CPT Clinic Duty Team is tasked with progressing ongoing maintenance and tech debt tasks as well as handling inbound reactive and Unbreak Now (UBN) tasks. The goal of the team is to provide space to work on important maintenance and tech debt tasks that are not covered by existing projects. Our intention is to ensure that inbound UBN and reactive tasks are handled - in a timely manner - as well as to provide support needed by other teams. A major benefit of this approach is that it allows those not on Clinic Duty to focus on work in an uninterrupted way.

The Clinic Duty (CD) team also provides an important tool for knowledge sharing across the team and to provide a learning entry point for Engineers to areas that they have not worked on in the past.

The team uses a simple Agile process, where work is prioritised for two week sprints, retros are held at the end of sprints giving all engineers an opportunity to input into improving the process.

Getting Started
If you or your team is interested in participating, the first step should be to discuss with your manager and to reach out to Will Doran  on the Core Platform Team, to arrange scheduling and planning of engineers joining a future sprint.

As this is a new initiative and we are unsure of the level of demand, we will create a queue to ensure that we have the resources available to support visiting Engineers.

Process for Engineers from Other Teams
When an engineer joins a CD sprint, instead of getting one-off code reviews, the entire CD team prioritizes supporting you and your work to get you in a better state quickly.

An Engineer joining Clinic Duty can either bring with them specific tasks they want to work on or select tasks from our teams backlog that target areas they want to gain knowledge in. For the two week sprint, the Engineer works on their own tasks for 50% of the time and fills their remaining 50% time helping us via knowledge transfer, code reviews, or backlog tasks. To support collaboration we use pair programming sessions as syncing points.

Our team provides support on code review for the visiting Engineer’s tasks and/or will work on tasks from the visiting Engineer’s team - supported by code review from the visiting Engineer - for knowledge sharing.

Why are we offering this? How does this help CPT?

 * Less context switching, it’s much more time consuming for us to field random code review requests and bug requests, than it is to have the people familiar bring a block of work with them and work on it at once with their support
 * Cross training for our team
 * Directly support more engineers taking on code review and tasks
 * Creating a shared learning environment that facilitates and supports knowledge transfer across the org as a whole

Metrics
As part of our process, we have started tracking a number of metrics focused on Clinic Duty. Initially, we have been targeting completion of tasks and external code reviews though we want to expand these metrics in future iterations. We’re moving from a more manual tracking of metrics to using an SMW instance to pull the data directly from phabricator. This can be viewed on the Clinic Duty Stats report.