On-call and the postmortem that keeps the account
Everything else in this series was about preventing the bad day. This one is about the bad day arriving anyway — because it will. The outage will come. The database will fail over wrong, a deploy will take down the book, a dependency the team doesn't own will go dark at the worst hour. Enterprise-grade doesn't mean never going down. It means that when it happens, the account watches how the team handles it — and decides, based on that, whether to renew.
That's the reframe that matters most here: an incident is not a technical event. It's a trust event. The technical part — find the cause, fix it — is maybe half of it. The other half is how the room gets run while it's on fire and what goes in front of the customer after. Handle those two well and an outage can increase an enterprise customer's confidence. Handle them badly and a ten-minute blip loses a seven-figure account.
The SLA is a promise with teeth
In consumer software "reliable" is a vibe. In enterprise it's a number in the contract with money attached. The SLA — the service-level agreement — quantifies the promise: uptime (the famous nines), response and resolution times by severity, and service credits the vendor owes on a miss. That last part is what makes it real: breach the SLA and the business is writing off revenue, so reliability stops being an engineering nicety and becomes a line item the business defends.
Underneath the customer-facing SLA, the discipline that actually delivers it is the SLO — the service-level objective — and its error budget: engineering picks an internal objective (say 99.9% of requests succeed), and the gap to 100% is a budget the team is allowed to spend. Burning it fast means stop shipping features and go fix reliability; plenty of budget left means there's room to take risk. It turns "how reliable should we be" from an argument into a measurement — and it's the same move as the whole series: make the system carry the judgment. This is also where the Availability criterion from episode 1 stops being a checkbox and becomes an operational practice.
The on-call machine
When the page fires at 2am, the thing that saves the team is not heroics — it's a machine built in daylight. It starts with severity, because the response is only as good as the triage:
- SEV 1
- Critical — the product is down or data is at risk for many/all tenants. Wake everyone. Incident commander, live comms, all hands until resolved.
- SEV 2
- Major — significant degradation or a single large tenant down. Urgent, on-call owns it, escalate if it grows.
- SEV 3
- Minor — contained, a workaround exists. Handle in hours, no midnight page.
Above the sev level sits the part teams underinvest in: roles. One incident commander coordinates and makes the calls — and critically does not also have their head in the debugger; a separate responder investigates, and a third owns communications. The failure mode of a bad incident isn't a lack of smart engineers; it's five smart engineers all debugging in parallel with nobody running the room and nobody talking to the customer. The machine — rotation, escalation path, a commander, a comms owner, a status cadence on a clock — is what converts panic into procedure.
Comms are half the recovery
Here's the counterintuitive part: enterprise customers forgive outages. They run systems; they know things break. What they don't forgive is silence and spin. The account that churns after an incident usually isn't the one that was down longest — it's the one that couldn't get a straight answer while it was down.
So the comms are not a distraction from the "real" work; they're half the trust recovery. A status page that updates on a cadence even when the update is "still investigating, next update in 30 minutes." A proactive note to the affected accounts before their users open tickets. Plain language, no hedging, no premature all-clears. The message a good incident sends the customer is: these people know what's happening and they're telling the truth. That message is worth more than the fifteen minutes of uptime under argument.
The account lost to an outage is almost never the one that was down the longest. It's the one left in the dark.
The postmortem that keeps the account
After the fire is out, the artifact that decides the renewal gets written: the postmortem. A real one has a timeline, an honest root-cause analysis that reaches past "human error" to the system that let the human err, and action items with owners and dates — tracked to done, not filed and forgotten.
The word that matters is blameless. Not because engineers deserve to be coddled, but because a blame culture buys lies: the moment naming a cause gets someone fired, people stop telling the truth, and the team loses the only thing the incident was good for — knowing exactly how the system fails. Blameless postmortems optimize for the truth over the scapegoat, and truth is what prevents the repeat.
And then the move most companies are too skittish to make: share it with the customer. A well-written postmortem — here's what happened, here's the real cause, here's what we've changed so it can't happen this way again — is the single most trust-restoring document a vendor can send an enterprise account. It's the green curve in Figure 1. It's how a customer walks away from the worst day saying they handle incidents better than our own team does — which is, quietly, one of the strongest reasons an enterprise stays.
What to wire in
One last time in this series: build the machine in daylight so the 2am responder doesn't have to be a hero.
- 01
SLOs and an error budget
Instrument the objectives that back the SLA, and let the budget burn-rate drive the ship-vs-fix decision. Reliability becomes a measurement, not a monthly argument.
- 02
Actionable alerting + an on-call rotation
Every page maps to a human action; the noise that doesn't gets deleted, because an alert the team learns to ignore is worse than none. A fair rotation and a clear escalation path behind it.
- 03
An incident runbook with defined roles
Incident commander, responder, comms owner — named, rehearsed, and separate. Plus a status page and comms templates so the first customer update is a fill-in-the-blank, not a blank page at 2am.
- 04
A blameless postmortem process
Required after every Sev 1/2, with tracked action items and a customer-shareable version. The loop that turns each incident into the last time it happens that way.
Corrections welcome — and a wrap
This is the finale, and the topic furthest from anything this series can claim to have run at the sharp end. So the corrections most worth having are from people who have: the incident where the comms saved the account, or the silence that lost it; the postmortem that changed how a customer saw the team; the blameless process that quietly wasn't.
And that closes Shipping for the Enterprise. Five posts, one through-line: the unglamorous work that enterprise SaaS demands isn't about heroics or cleverness — it's about building systems that hold the invariant so a human doesn't have to. A report that proves the control instead of asserting it. A questionnaire answered once. Isolation the database enforces below the query. Compatibility a red build protects. An incident run by a machine built before it was needed. That's the craft the customer is really buying — and the craft worth getting right.
Email or X. Building in the open is partly a learning project; the outside input is the point.
— Neil
