I embrace production incidents. Strange as it sounds, system failures aren’t enjoyable, of course, but they’re where system design and implementation meet reality. It’s the ultimate feedback loop—forcing us to learn, adapt, and sharpen our team’s engineering skills while revealing vulnerabilities. It’s also an opportunity to lead, communicate, and problem-solve under pressure.
Here’s the thing: I want my team to appreciate these experiences too. So, the challenge becomes: how do we make them less stressful?
Let’s start with the basics. Failures are inevitable. So, the goal during a production incident isn’t to rush back to availability at any cost but to get to the root cause, and solve it in a way that prevents recurrence.
To make this happen, we need a process that enables our team to identify and solve the issue effectively, prevent cascading failures, and coordinate smoothly with stakeholders—all while keeping the environment as noise- and stress-free as possible.
There are plenty of process templates out there, but here’s the core of what I focus on:
- Public Announcement: Use a shared channel (e.g., #production_incident in Slack) for immediate, transparent communication.
- Appointing an Incident Commander (IC): The IC’s role isn’t to fix the issue directly but to manage and coordinate the resolution. This includes:
- Forming a solver team, potentially with domain experts from other teams.
- Coordinating solver efforts and ensuring alignment with external stakeholders.
- Logging and organizing findings in an incident log.
- Managing handoffs to the next shift as needed.
- Conducting a postmortem and collaborating on the incident report.
- Solver Team Dynamics: The solver team must communicate openly, sharing findings and proposed fixes in real time. They often meet in a virtual or physical “war room,” and the IC ensures all actions are audited, ordered to avoid interference, validated, and—where possible—tested (peer programming is useful here).
- Broader Communication: Some incidents may require continuous updates to departments like marketing, biz dev, sales, or legal. The IC will update (or delegate updates to) the necessary stakeholders on the impact and resolution time regularly.
- Postmortem: Dive into what led to the root cause and define actions—like improved monitoring, alerting, or code refactoring—to eliminate the conditions that allowed it to happen. This is all part of the team’s continuous improvement.
And finally, as leaders, we must keep emotions in check. Leave them aside and focus on the fix. Incident management builds leadership, especially for ICs, so make sure team members get the chance to experience this role. A committed process reduces stress and turns every incident into an opportunity to grow and learn.
