Stage 6 · Operate
Incident Response & RCA
Tracking Action Items
Preventing recurrence, ownership, and closure verification — making sure fixes actually happen.
Why Track Action Items?
Action items that are not tracked do not get done. Without tracking, incident learnings evaporate. The same incidents recur because the fixes were never implemented. Tracking turns incident learnings into durable improvements.
Every action item is an investment in preventing the next incident. Track them like you track engineering work — with owners, due dates, and progress reviews. Unfinished action items are unfinished reliability work.
Action Item Quality
Poorly written action items do not get done. They are vague, unmeasurable, and have no clear owner. Use the SMART framework: Specific, Measurable, Achievable, Relevant, Time-bound.
| Poor Action Item | Good Action Item |
|---|---|
| Improve monitoring | Add connection pool utilization alert to Grafana with 80% threshold by 2024-02-15 |
| Fix the deployment process | Implement automated rollback in Argo Rollouts for error rate > 5% by 2024-03-01 |
| Add testing | Write integration test for /api/users endpoint covering connection pool exhaustion by 2024-02-28 |
| Document better | Create runbook for database connection issues with diagnosis steps and remediation by 2024-02-20 |
Ownership and Accountability
Every action item must have exactly one owner. Not a team — a person. Shared ownership is no ownership. The owner is responsible for completion, not just for tracking progress.
ownership_rules:
single_owner: true
rules:
- "Owner must be a named individual, not a team"
- "Owner must agree to the due date"
- "Owner must have the authority to complete the action"
- "If owner changes, update the tracker immediately"
accountability:
- "Weekly review of action item status"
- "Overdue items escalated to engineering manager"
- "Monthly report on action item completion rate"
delegation:
- "Owner can delegate work but retains accountability"
- "Delegation must be recorded in the tracker"
- "Original owner verifies completion"Tracking System
Use a consistent system for tracking action items. Jira, GitHub Issues, or a dedicated reliability tracker all work. The key is consistency — every action item goes through the same system.
tracker_schema:
fields:
- name: "id"
type: "string"
description: "Unique identifier like AI-001"
- name: "title"
type: "string"
description: "Clear, specific description"
- name: "owner"
type: "string"
description: "Named individual responsible"
- name: "due_date"
type: "date"
description: "When it must be completed"
- name: "priority"
type: "enum"
values: ["critical", "high", "medium", "low"]
description: "Based on incident severity and risk"
- name: "status"
type: "enum"
values: ["not-started", "in-progress", "blocked", "complete", "verified"]
description: "Current state of the action item"
- name: "incident_id"
type: "string"
description: "Link to the originating incident"
- name: "verification_criteria"
type: "string"
description: "How to verify the action is complete"
- name: "completed_date"
type: "date"
description: "When the action was actually completed"
- name: "verified_date"
type: "date"
description: "When verification was performed"Closure Verification
An action item is not complete when the owner says it is done. It is complete when someone verifies that the fix actually works. Verification prevents false closures where the action was partially done or not done at all.
verification_process:
steps:
- step: "Owner marks item as complete"
action: "Owner updates status and provides evidence"
- step: "Reviewer verifies"
action: "Different person confirms the fix works"
evidence:
- "Grafana dashboard shows new metric"
- "Alert fires correctly in staging"
- "Runbook is updated and tested"
- "Code review approved and merged"
- step: "Close item"
action: "Update status to verified and close"
verification_types:
monitoring:
- "Metric is visible in Grafana"
- "Alert fires at correct threshold"
- "Alert routes to correct channel"
code:
- "PR merged to main"
- "Tests passing in CI"
- "Deployed to production"
process:
- "Document updated"
- "Team trained on new process"
- "Runbook tested"Aging Dashboard
Build a dashboard that shows action item aging. Overdue items should be visible to leadership. Aging dashboards create accountability and prevent action items from being forgotten.
dashboard_metrics:
- name: "Open Action Items"
query: "count(status != 'verified')"
target: "Decreasing trend"
- name: "Overdue Action Items"
query: "count(due_date < today() AND status != 'verified')"
target: "0"
- name: "Average Days to Complete"
query: "avg(completed_date - created_date)"
target: "< 30 days"
- name: "Completion Rate"
query: "completed_this_month / created_this_month"
target: "> 80%"
- name: "Aging by Priority"
type: "table"
query: "group by priority, avg(today() - created_date)"
columns: ["Priority", "Count", "Avg Age (days)"]Action item completion rate is a key performance indicator for your reliability program. A low completion rate means your postmortem process is producing actions you cannot execute. Either improve execution or reduce the number of actions.
Mark this lesson complete to store local progress and unlock a cleaner resume path the next time you visit.