Skip to content

RFC: how do reduce pain for CEOC shift swap between engineers

Request for comments

Need

Due to #6335 (closed) and #6423 (closed), support engineers went from 1 shift per rotation to 2 half days and 1 full days of shift per rotation.

This increases the likelihood to have shifts scheduled during our PTO, increase the need for swapping, and decrease chance to find someone who is:

  • Available to take our shift over
  • Has a shift that we are able to cover.

So for me it regularly leads to have a 3 party swap:

graph TD;
    A[Support Engineer A]-->|Take a shift| B[Support Engineer B];
    B[Support Engineer B]-->|Take a shift| C[Support Engineer C];
    C[Support Engineer C]-->|Take a shift| A[Support Engineer A];

But those are difficult to coordinate. Finding someone who's willing to take the first shift is reasonably easy, but finding the third party aka Support Engineer C is difficult as the topic of the conversation has been already narrowed down to the initial date to get rid of.

This is a regular pain point of mine and I wonder if I'm the only one or if that's the majority of people suffering from this.

Suggestion: CEOC shift marketplace

  • There would be a list of shifts engineers are trying to get rid of

  • Everyone starts with a score of 0.

    • When we take an extra shift, we add +1 to this personal score (+1)
    • We give away a shift to the list, we subtract 1 to this score (-1)
    • The goal is for our individual score value to be equal 0 most of the time, even though sometimes we could be going to -2 or -3 in case of PTO or last minute emergencies.
  • When there is a shift we cannot do (PTO or other reason)

    • We simply add our shift to the list (personal score goes -1)
    • If there is something in the list we can cover, then we take it (1-1 = 0 for the score)
    • If there is nothing in the list, that's ok and we should think of going there have a look again later see if there isn't another date suitable

Ideally, all shifts should be set within an arbitrary period of time, let's say the next 2 weeks. To make sure we're not running into the issue of we have no one to cover for tomorrow.

I'm not 100% sure if this system is:

This is just one proposed implementation. The goal of this issue is to see if the team think we need a better way to swap CEOC shifts, and if yes, which kind of improvement could be done to make our life easier.

Benefit

More flexibility when it comes to swapping shifts, but at a more complex tooling.

Competition / Alternatives

  1. Keep things as it is now
  2. Something else?