Estimating Development Capacity Realistically With Unplanned Maintenance Work

Defining Development Capacity

Development capacity refers to the total amount of software development work a team can handle within a certain timeframe while maintaining quality and velocity. It is determined by the number of developers, their skills, experience levels, tools and processes used, and time available for focused work.

Accurately defining and tracking capacity allows organizations to plan and commit to reasonable delivery timelines. However, unplanned work often consumes capacity, leading to missed commitments. To estimate capacity realistically, unplanned work must be accounted for.

Accounting for Unplanned Work

Unplanned work refers to disruptive requests and issues not factored into capacity plans, including:

  • Production bugs and hotfixes
  • Security patches
  • Technical debt resolution
  • Support requests
  • Administrative tasks

If not budgeted for, these tasks can quickly consume 30-50% of total development capacity, derailing project timelines. Organizations that do not track unplanned work tend to overcommit capacity.

Deducting Historical Unplanned Work

The most straightforward way to account for unplanned work is examining past trends. Analyze logs from the previous quarter to calculate what percentage of capacity was spent on unplanned tasks. Deduct this historical percentage from available capacity for future commitments.

Adding Capacity Buffers

An alternative technique is adding capacity “buffers” or reserves to estimates. For example, if unplanned work historically consumes 15% of capacity, plan for 85% utilization and leave 15% open for disruptions. This buffered capacity should not be used for planned work, serving as overflow for unplanned tasks.

Techniques to Estimate Unplanned Work

To arrive at more precise unplanned work adjustments, organizations can leverage these techniques:

Unplanned Work Tracking

Require teams to log all unplanned tasks and the capacity consumed. Over time, rich data is collected, enabling highly customized unplanned work calculations by team, application, exception type, and other dimensions.

Interrupt Rate Tracking

Record all disruptions to planned work – emails, meetings, phone calls, production issues, etc. Calculate average interrupt rates and the capacity lost. Deduct this capacity from estimates before committing.

Comparative Benchmarking

Research unplanned work rates across comparable teams internally, at other companies, and industry benchmarks. Deduct the average rate.

Capacity Utilization Reporting

Instrument agile tracking tools to calculate percentage utilization and capacity consumed by initiative. This reveals overallocation, spurring corrective estimate adjustments.

Managing Interruptions and Context Switching

While factoring unplanned work into plans is essential, organizations should also actively manage work environments to minimize unnecessary distractions. Two key techniques include:

Interrupt Coalescing

Train staff to avoid interrupting development teams for non-urgent requests. Designate blocks of time where inquiries can be made. Batching questions allows for fewer context switches.

Focus Time

Structure schedules to provide sizable “focus time” blocks – 2-4 hours where developers can apply sustained attention on priority initiatives without distractions. This enables flow states and progress.

Building Buffer Time into Estimates

While deducting historical unplanned work percentages from capacity plans is prudent, additional buffer time should be added within task estimates, including:

Padding Estimates

Increasing individual task estimates by 10-20% addresses inherent uncertainty in requirements, technical challenges, and task duration – without building in slack time at the end of projects.

Spikes

Front-load initiatives with focused investigative spikes to surface complexities early. These upfront buffers expose hidden effort before team velocity is dedicated long-term.

Technical Debt

Dedicate buffers for addressing technical debt before features are scoped. Allocate time to pay down issues early instead of allowing drag on new feature velocity.

Setting Realistic Expectations

The best capacity plans falter without supportive delivery culture focused on sustainability, transparency, and learning. Leadership should foster environments where teams can be realistic about work without retaliation or punishment.

Incremental Goal Setting

Set milestone-based goals allowing flexibility in pace and sequencing. Avoid arbitrary end-dates without accounting for discovery and refinement logical in software development.

Capacity Goal Formulation

Make capacity planning a collaborative, bottom-up effort jointly involving leadership, teams, and project managers agreeing on work volume teams can handle.

Transparency Over Commitments

Display capacity consumption and task completion transparency through information radiators like agile boards and dashboards. When surprises happen, teams should raise issues early.

Communicating Capacity Constraints

Consistently communicating team capacity and overalignment risks with stakeholders across the business tempers unrealistic expectations. Some best practices include:

Product Management Partnership

Include product management in agile ceremonies so they fully understand team bandwidth and can communicate constraints to leadership when prioritizing demands.

Current Work Review

In every executive review, include updates from teams on capacity consumption, unplanned work, and realistically achievable targets given existing commitments.

Targeting Under-Commitment

Cultivate a culture of under-committing targets through low-risk, under-budget projects demonstrating more, not less, can be consistently delivered.

Automating Data Collection

While manual tracking of unplanned work, interruptions, and capacity utilization provides better estimates than ignorance, tool automation increases accuracy exponentially. Solutions to explore include:

Time Tracking

Tools like Timely automatically classify activity across projects and initiative types, calculating capacity splits between planned and unplanned work.

Status Logging

Mobile-first tools like Status Hero allow teams to instantly log context switches and interruptions as they occur – recording incident metadata for analysis.

Ticket Integration

Linking productivity trackers to ticket systems extracts key metadata on unplanned work volume over time – and the cause driving activities.

Continually Refining Estimates

Even while applying the techniques outlined above, unknowns make early stage estimates difficult. Organizations must iterate on plans over time, updating for new learnings. Core methods include:

Velocity Tracking

Actively record completed work over time to build predictive velocity metrics for different teams and initiative types.

Rolling Wave Planning

Only lock estimates 6-8 weeks out, keeping further milestone estimates rough during discovery, cutting scope or negotiating trade-offs if capacity proves tight.

Unplanned Work Reviews

During sprint reviews, inspect unplanned tasks concluded in period vs initial estimates and adjust next cycle targets accordingly.

Leave a Reply

Your email address will not be published. Required fields are marked *