Recurring engineering effort
Which Production Issues Deserve Prevention
Quick Answer
Production issues worth preventing combine high recurrence, significant customer or business impact and a clear, achievable fix, which separates them from one-off incidents and issues with uncertain solutions. Teams find them by collecting incident data, categorizing by root cause, quantifying impact, summing aggregate cost per category, assessing prevention feasibility and ranking by return on investment. A fixed share of engineering time for reliability keeps the work funded.
We identify production issues worth preventing by quantifying their aggregate cost and considering the feasibility of prevention. Prevention efforts should target issues with high recurrence, significant customer or business impact, and clear, achievable solutions. This contrasts with one-off incidents or those with complex, uncertain prevention strategies.
Why Teams Prevent the Wrong Production Issues
Engineering resources are finite. Every prevention effort represents a trade-off against new feature development or other operational tasks. Organizations often react to the most recent or visible incident, regardless of its statistical significance or prevention cost. Without a structured assessment, teams expend effort on issues that have low aggregate impact or are difficult to prevent. This leads to inefficient resource allocation. Incident fatigue can also drive reactive prevention, where engineers fix the proximate cause without analyzing systemic value. Additionally, incomplete incident data often obscures the true cost or frequency of various issue types.
How to Rank Production Issues by Prevention Value
-
Collect comprehensive incident data. Log every production incident. Include timestamps, affected services, detected symptoms, customer impact, remediation steps, and time-to-restore (MTTR). Ensure data consistency in your incident management system. Core Metrics for Assessing Production System Health can guide data collection.
-
Categorize incidents by root cause. Group incidents into distinct types. Example categories might be 'database contention,' 'API rate limit exceeded,' 'third-party service outage,' or 'deployment error.'
-
Quantify incident impact. Assign a cost metric to each incident. This includes MTTR in engineer-hours, lost revenue, customer churn risk, and operational overhead. Normalize subjective impacts for comparison.
-
Calculate aggregate cost per category. Sum the total impact for each incident category over a defined period (e.g., last 3-6 months). This provides a ranked list of the most 'expensive' issue types.
-
Assess prevention feasibility. For high-cost categories, evaluate potential prevention strategies. Estimate the engineering cost and likelihood of success for each strategy. Consider if the issue is internal, external, or a known limitation. Focus on strategies with high certainty of impact.
-
Prioritize based on ROI. Select issues where the aggregate cost of recurrence significantly outweighs the estimated cost of prevention and implementation risk. This maximizes the return on engineering investment. Prioritize these efforts over others. Prioritizing Product Features Under Perceived Urgency offers a framework for such decisions.
A Practical Example With Connection Exhaustion
Here is an illustrative example we use to show the pattern. A SaaS company experienced frequent 'database connection exhaustion' errors. Logs showed ~5 incidents per month, each averaging 30 minutes MTTR. Engineers spent 2 hours per incident diagnosing and restarting services. Customer-facing impact meant service unavailability, leading to lost transactions during each incident. The aggregate monthly cost was 5 incidents at 2 hours each, plus the transactions lost. Over 6 months, this totaled 60 engineer-hours plus lost revenue. The root cause analysis identified unoptimized, long-running queries from an infrequently used reporting feature. The prevention strategy involved refactoring the reporting queries and implementing a connection pool with aggressive timeouts for that service. The estimated engineering cost for prevention was 40 hours. This one-time investment would eliminate 60 recurring engineer-hours and potential revenue loss over 6 months. The high recurrence and clear technical solution made this a high-ROI prevention target. Engineers dedicated one sprint to prevent this specific class of incident, eliminating it from the top incident categories.
Preventing Recurrence With Incident Classification
Implement a robust incident classification system. Enforce consistent data entry for all incidents. Regularly generate and review incident reports that show trends in recurrence, MTTR, and business impact. Allocate a fixed percentage of engineering time (e.g., 20%) for platform and reliability work. This ring-fences capacity for prevention. Embed post-incident analysis into the regular development cycle. Link problem tickets directly to incident categories. Use automated runbooks to reduce MTTR for known issues. This buys time for more permanent prevention. Strategies for Reducing Production Incident Diagnosis Time details related improvements.
What Teams Usually Do Instead
Many teams prioritize prevention based on the most recent or largest single incident. This often leads to over-engineering for rare, high-impact events while ignoring frequent, low-impact issues that accumulate significant aggregate cost. They might implement complex, expensive solutions for issues that occur once a year. Conversely, they may tolerate daily minor degradations because each instance is 'small.' They also frequently address proximate causes rather than systemic ones. A team might add more replicas to a database without optimizing queries, temporarily masking the problem. This creates technical debt. Without quantifying cost, they rely on anecdotal evidence or individual engineer frustration. This results in prevention projects with poor ROI, consuming resources without significant overall reliability improvement. A sound product engineering plan funds prevention explicitly instead of leaving it to heroics.
Key Takeaways for Preventing Production Issues
- Quantify recurring incident costs systematically.
- Prioritize prevention efforts by potential ROI.
- Focus on frequent, mid-to-high impact issues.
- Ensure prevention strategies are technically feasible.
- Allocate dedicated engineering capacity for reliability.
To decide where prevention effort pays off in your own systems, talk to Better Software.
Frequently Asked Questions
Which Production Issues Are Worth Preventing?
In our view they are issues with high recurrence, significant customer or business impact, and clear, achievable solutions. One-off incidents and those with complex, uncertain prevention strategies rarely justify the same investment.
How Do I Quantify the Cost of an Incident?
We assign a cost metric to each incident that includes time to restore in engineer-hours, lost revenue, customer churn risk and operational overhead. Then we sum the impact per root cause category over a defined period, for example three to six months, to rank the most expensive types.
How Do I Judge If Prevention Is Feasible?
For high-cost categories we evaluate candidate strategies, estimate the engineering cost and likelihood of success, and consider if the issue is internal, external or a known limitation. We focus on strategies with high certainty of impact where recurrence costs clearly outweigh prevention costs.
Why Is Fixing the Latest Incident a Poor Strategy?
Reacting to the most recent or largest single incident leads to over-engineering for rare events while frequent, low-impact issues accumulate cost. We prefer quantified cost over anecdotes or individual engineer frustration, because those produce prevention projects with poor return.
How Much Engineering Time Should Go to Reliability?
We suggest allocating a fixed percentage of engineering time, for example 20%, to platform and reliability work so that capacity for prevention is ring-fenced. Automated runbooks reduce time to restore for known issues, which buys time for permanent fixes.
About the author
Better Software Team
Product and engineering team
Better Software Team is the product and engineering team at Better Software. We build new software products and improve existing applications and systems, with deeper experience in healthcare, finance and energy.