SRE / Intermediate: response and operational evidence / Lesson 9
Incident command and useful communication
Organize response around user impact, explicit roles, a shared timeline, and reversible mitigation while preserving uncertainty and decision evidence.
On this page
Lesson goals
- Declare and scope an incident.
- Separate command, operations, and communications.
- Write factual status and handoff records.
Declare early enough to coordinate
An incident is a situation requiring coordinated response beyond ordinary individual work. Declaration creates a shared structure; it need not wait for a confirmed root cause. Describe observed user harm, affected scope, start time or earliest evidence, and uncertainty. Use a severity policy based on consequences rather than how dramatic a graph looks. The Library service might declare an incident when confirmed reservations fail in one region, even if global availability remains acceptable. Early coordination can prevent duplicate experiments and bring the right owners together before an initially narrow problem expands.
Separate coordination from execution
The incident commander maintains priorities, scope, roles, and escalation. Operations responders investigate and carry out authorized actions. A communications lead keeps stakeholders informed with a consistent cadence. Small incidents may combine roles, but name the responsibilities so they do not disappear. The commander should avoid becoming absorbed in one technical hypothesis while the overall response loses direction. Explicitly transfer command when fatigue or shift changes require it, and have the incoming commander acknowledge the state. The example record is an editorial coordination model and grants no administrative authority.
incident: library-lab-017
impact: regional-reservation-confirmations-failing
commander: response-lead
operations: reservation-owner
communications: stakeholder-liaison
priority: reduce-user-harm-before-full-causal-analysis
next_update: agreed-time-with-timezone
Named responsibilities reduce coordination ambiguity. These fictional role names neither contact people nor change service access.
Keep observations and hypotheses distinct
A shared timeline records what was observed, what was believed, what changed, and what happened afterward. Use timestamps with a timezone and identify the evidence source. The offline ordering example sorts synthetic UTC events to reveal the sequence without inferring causation. A release preceding errors is a hypothesis worth testing, not proof that the release caused them. Record action owner, scope, expected effect, and actual verification. Avoid private customer payloads and credentials in incident notes. Good notes let a new responder join without forcing everyone to repeat the same uncertain story.
events = [("10:08Z", "mitigation-verified"), ("10:02Z", "errors-observed"), ("10:00Z", "release-recorded")]
for timestamp, event in sorted(events):
print(timestamp, event)
10:00Z release-recorded
10:02Z errors-observed
10:08Z mitigation-verified
The same-date fixed-width UTC times sort lexically here. This demonstrates chronology only; real multi-date records need complete timestamps.
Reduce harm with controlled actions
Choose mitigations according to current evidence, reversibility, and possible side effects. A rollback may be appropriate for a compatible release; a data migration can make that assumption unsafe. Change one bounded thing when practical, record it, and verify user outcomes before expanding scope. Preserve enough evidence for later analysis without delaying urgent protection. If an action fails its postcondition or the target is ambiguous, stop and escalate instead of stacking more changes. Coordination should make it clear which responder may act, preventing simultaneous conflicting repairs from obscuring the result.
Communicate known impact and next steps
A useful update states the affected user behavior, current mitigation, what remains uncertain, and when the next update will arrive. Avoid promising a restoration time unsupported by evidence. Internal technical detail and public communication may require different levels of disclosure, but neither should present a hypothesis as fact. After mitigation, confirm recovery over a suitable observation period and track remaining correctness or backlog issues separately. Close the incident deliberately with an owner for follow-up learning. A green short-term graph is not sufficient if lost or duplicated reservations still need reconciliation.
Common errors and fixes
Several responders make conflicting changes
- Why it happens
- No operations coordination or action log exists.
- How to fix it
- Name an operations lead and serialize risky actions.
- Prevent it next time
- Rehearse roles and record action ownership.
An update declares an unverified root cause
- Why it happens
- Hypothesis and observation were merged.
- How to fix it
- Label uncertainty and report verified impact.
- Prevent it next time
- Use a factual status template and review cadence.
The incident closes while data remains inconsistent
- Why it happens
- Availability recovery was treated as complete recovery.
- How to fix it
- Track reconciliation with an accountable owner.
- Prevent it next time
- Define closure across availability and correctness.
Check your understanding
1. Write an update when one region fails and the cause is unknown.
Show worked solution
Reservations in the affected region are failing from the earliest confirmed observation. Responders are verifying scope and evaluating a bounded mitigation. The cause remains under investigation; the next update will be provided at the agreed time. Include only verified timing and avoid an unsupported restoration estimate.
2. A rollback reduces errors but some users have duplicate confirmations. Can the incident close?
Show worked solution
Availability may be mitigated, but correctness work remains. Record the residual impact, reconciliation owner, verification criteria, and communication plan. Depending on the severity policy, keep the incident active or explicitly transfer the remaining work; do not let it disappear behind the recovered error graph.
Key takeaways
- Declaration creates a coordination structure.
- Keep facts, hypotheses, actions, and verification distinct.
- Recovery includes residual user and data consequences.