Planning predictability
Integrating Production Work into Engineering Capacity Planning
By Team · Sat Mar 21 2026 · 4 min read
Production work includes incident response, support, emergent bug fixes, and operational overhead. These activities consume engineering capacity. Neglecting to plan for this work leads to inaccurate capacity estimates and delayed project delivery. Successful planning integrates a dedicated allocation for these operational demands.
Why This Happens
Production systems require ongoing attention. Incidents occur unpredictably. User support often escalates to engineering for investigation. Maintenance tasks, security patches, and operational scaling also consume time. These demands often compete directly with planned feature development.
Organizations frequently optimize for feature velocity. This incentivizes underestimating production-related work during planning phases. Teams commit to roadmaps assuming full feature development capacity. Production needs then interrupt these plans. This creates a hidden cost. It leads to technical debt accumulation from uncontrolled velocity and missed deadlines. Engineers operating within this model experience frequent context switching. Reliability erosion can also be a consequence.
Investigation Process
- Quantify Historical Production Work: Gather data on time spent on production-related tasks.
- Categorize Work Types: Classify production work into buckets. Examples: incident response, bug fixes, support escalations, maintenance.
- Measure Time per Category: Use project management tools or time tracking to determine hours spent per category. Include on-call shifts.
- Calculate Average Allocation: Determine the average percentage of engineering time dedicated to production work over several planning cycles (e.g., 3-6 months).
- Identify Trends: Look for increases or decreases in production work over time. Relate changes to system complexity or team size.
- Assess Operational Burden Sources: Identify specific services or components generating the most operational noise.
- Estimate Future Demand: Project future production work based on historical data and anticipated system changes. Consider new services, increased traffic, or team growth.
Practical Example
A SaaS company’s Payment team consistently missed sprint commitments. Their roadmap focused solely on new feature development. Engineers reported frequent interruptions for production issues. The Director of Engineering initiated an investigation.
Over two quarters, every engineer tracked their time spent on non-feature work. This included P0/P1 incident response, customer support escalations, and urgent bug fixes. Data revealed that the Payment team collectively spent 25-30% of their available engineering hours on these activities. Some weeks, this figure exceeded 50% for individual engineers.
The investigation identified the root cause: an aging microservice handling subscription renewals. This service had frequent database connection issues and intermittent third-party API failures. These issues directly drove the high incident count. Customer support consistently escalated billing inquiries. The team had no dedicated capacity for its remediation.
During the next capacity planning cycle, the team allocated 25% of their total engineering capacity specifically for production work. This buffer covered anticipated incidents and support. Additionally, they dedicated 15% to a targeted refactor of the problematic subscription renewal service. This refactor was treated as a feature, with specific goals of reducing incident volume. This change made the roadmap more realistic. Incident volume decreased following the refactor, leading to improved predictability.
Preventing Recurrence
Implement a dedicated “production buffer” in all capacity planning models. This should be a percentage of total engineering capacity. Use historical data to inform this percentage. Regularly review and adjust this buffer. Implement an explicit operational roadmap alongside feature roadmaps. Prioritize efforts to reduce the root causes of production work. This includes improving system observability, automating routine tasks, and addressing technical debt. Ensure on-call rotations are adequately staffed and compensated. Document runbooks and incident response procedures to reduce resolution time. Proactively dedicate capacity to operational improvements.
What Teams Usually Do Instead
Teams often plan capacity solely around new feature delivery. They assume production work is negligible or will be handled “on the side.” This leads to an optimistic bias in project timelines. When incidents occur, they interrupt planned work. This causes context switching and slows feature development. Engineers then feel pressure to rush fixes. This introduces new bugs and creates a cycle of reactive work. Some teams try to address this by simply increasing individual engineer workload, leading to burnout. Others attempt to “catch up” by deferring maintenance or critical upgrades, which compounds future operational load. This approach provides short-term perceived velocity at the expense of long-term predictability and system health.
Key Takeaways
- Allocate explicit capacity for production work.
- Quantify historical time spent on operational tasks.
- Integrate production buffers into all planning.
- Prioritize remediation of high-impact operational issues.
- Avoid assuming production work is zero-sum.