In this lesson, you will learn how to transform retrospective insights into concrete engineering tasks that systematically eliminate incident recurrence.
After conducting a blameless post-mortem and identifying root causes using the Five Whys, you are left with a list of "lessons learned." However, a lesson is not a task. To prevent future systemic failures, you must translate these findings into Actionable Corrective Preventive Actions (ACPAs).
An ACPA must be specific, measurable, and integrated into your existing development workflow. If your post-mortem reveals that a recent Kubernetes deployment failed due to an improperly configured readinessProbe, your ACPA shouldn't just be "fix the probe." Instead, it should be an actionable engineering task: "Implement a Kubernetes admission controller policy to mandate readinessProbe definitions for all deployments in the staging namespace."
Defining Effective ACPAs
To ensure your preventive actions don't languish, categorize them by their scope of impact:
- Corrective (The Fix): Address the immediate configuration error or code bug that caused the outage.
- Preventive (The Guardrail): Introduce automated tests, CI/CD pipeline gates, or infrastructure-as-code linting to catch this category of error before it reaches production.
Consider this example of moving from a vague thought to an actionable task:
- Vague: "We need to stop production databases from crashing during spikes."
- Actionable: "Add a
HorizontalPodAutoscaler(HPA) to theuser-servicedeployment, set aCPUutilization target of 70%, and integrate ak6load test into the CI/CD pipeline to validate scaling behavior under 2x normal traffic."
Prioritizing the Queue
Not all preventive actions are equal. When you have multiple ACPAs, prioritize them based on your current Error Budget. If your budget is nearly exhausted, prioritize preventive actions that automate safety—like adding missing alerts or updating CI/CD policies—over feature work. Treat these ACPAs as first-class citizens in your Jira or GitHub project board, assigning them the same weight as product features. If an ACPA is not worth scheduling, it is likely not a true preventive measure for a systemic risk.
Key Takeaway: An actionable preventive action is an automated engineering task that closes the gap between your current system state and your desired reliability objectives.