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:

- Prioritise 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)

- At the end of a two week sprint your team’s backlog and maintenance responsibilities should have measurably improved

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 and, in a timely manner, to ensure that inbound UBN and reactive tasks are handled and 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 will be held at the end of sprints giving all engineers an opportunity to input into improving the process.

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.

What do we get out of this?

- 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

- Making the org more efficient by moving maintenance of components to a shared space where we share responsibility in maintaining them

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.