Background

We recently released the biggest overhaul to one of the core features of Spike.sh - On-call schedules. Software teams use on-call schedules to designate first responders who will handle issues when they occur.

User research

Initially, we released a simple version for small teams who were just starting out with on-call. But as we talked to more customers, we realised that teams had many different types of on-call schedules, and wanted a more powerful feature that could handle the complex requirements as well as the ability to handle the human side of on-call - last minute changes, team member vacations and swaps between different people.

We gathered all the feedback and decided on a few goals for the design -

  • Simplicity: Spike.sh has a big focus on simplicity, so we wanted to allow teams to get started with on-call very easily.
  • Clarity: Because on-call schedules could become complex to manage, we wanted the design to be able to answer the most common questions easily.
  • Flexibility: The feature should be powerful enough to handle the many different schedules that different teams had, including the ability to handle schedules for team members in different locations.
  • Extensibility: The design should allow for future extensions to build some very powerful (and cool) ideas that the team came up with.

The solution - Layers!

When we spoke to our customers, we saw that they thought of on-call schedules as a set of rules ("the weekday on-call should be handled by team A", "weekend on-call can be handled by one person"). Customers wanted to apply these rules during certain times, and maybe "turn off" these rules during other times. The team came up with the idea of using layers to implement these rules.

The layers are similar to the ones used in design tools like Figma - the combination of layers creates the final output, the upper layers have preference over lower layers and individual layers can be turned on and off. Just like a design tool, layers allow teams to add more complexity to on-call while still being able to understand it visually. This enables the user to focus on one layer at a time without causing information overload from the other layers.

Creating on-call schedule

Here are some screenshots that show how the on-call creation flow changed in the new design.

Spike.sh - older on-call schedule creation
Older design of creating on-call
Spike.sh - New on-call creation with layers
New on-call creation with layers
View details of on-call schedule
View details of on-call schedule

Other improvements

We also added the ability to add time slots during a longer shift when a team member would be on-call. This is an improvement from before where a person could be on-call only for the entire shift.

Spike.sh - Adding slots in an on-call shift
Adding slots in an on-call shift

Some customers shared the feedback that they wanted a quick way to know who was on-call at any time. So we added a small dropdown which told them exactly that. It also shows you when you're next on-call.

Spike.sh - Who's on-call right now?
Who's on-call right now?

Conclusion

We put a lot of thought into the redesign of this feature, and the early feedback from our customers has made it all worth it. If you would like to give our modern on-call a spin, sign up at Spike.sh and let us know what you think.