Forecasting
What is Forecasting?
Historically, project management relied heavily on deterministic, single-point estimates, often based on expert opinion or detailed task breakdowns. This approach frequently led to missed deadlines and frustrated stakeholders due to the inherent uncertainty and complexity of software development. The Agile movement, with its emphasis on iterative development, empiricism, and adaptability, necessitated a different approach to planning and prediction.
The evolution of Agile forecasting has been driven by the need for greater transparency and realism. Early Agile methods often used simple velocity tracking for Sprint Planning and Release Planning. As the understanding of complex adaptive systems grew, influenced by Lean principles and the rise of Kanban, more sophisticated, data-driven, and probabilistic forecasting techniques emerged. These methods acknowledge the inherent variability in software development and aim to quantify that variability rather than ignore it.
The primary purpose of forecasting in Agile is to enable better decision-making. It helps product owners prioritize work, allows development teams to manage their capacity, and provides stakeholders with a clearer understanding of potential delivery timelines and risks. By offering a range of possible outcomes with associated probabilities, forecasting helps manage expectations more effectively than a single, often optimistic, estimate.
Forecasting is important because it bridges the gap between strategic product goals and tactical execution. It provides the necessary information for creating realistic Product Roadmaps, conducting effective Release Planning, and making informed trade-offs between scope, time, and cost. Without reliable forecasting, organizations risk over-committing, under-delivering, and eroding trust with their customers and internal stakeholders.
Forecasting fits centrally within the wider Agile knowledge graph, particularly within the Agile Planning & Estimation and Agile Metrics & Reporting categories. It relies heavily on metrics such as Velocity, Throughput, and Cycle Time. It informs various planning activities, including Iteration Planning, Sprint Planning, and Program Increment Planning (PI Planning). Concepts like the Cone of Uncertainty are fundamental to understanding the inherent variability that forecasting aims to address. It also influences prioritization techniques by providing data on the likely impact of different sequencing decisions.
How It Works
Core Principles
- Empiricism: Relying on observed historical data rather than subjective opinions or fixed plans.
- Data-Driven: Utilizing metrics like Velocity, Throughput, and Cycle Time to inform predictions.
- Probabilistic: Presenting forecasts as a range of possible outcomes with associated probabilities (e.g., "There's an 85% chance we'll finish by X date"), acknowledging inherent uncertainty.
- Iterative and Adaptive: Forecasts are not static; they are continuously reviewed and updated as new information emerges and the project progresses, aligning with Rolling Wave Planning.
- Transparency: Making the forecasting process and its results clear to all stakeholders, including the underlying assumptions and uncertainties.
Common Approaches and Workflow
The general workflow for Agile forecasting involves several steps, regardless of the specific method chosen:
- Define the Scope: Clearly articulate what needs to be forecasted. Is it a specific Minimum Viable Product (MVP), a set of features, a Minimum Business Increment (MBI), or the entire Product Roadmap? This scope needs to be broken down into manageable work items (e.g., user stories, features).
-
Estimate the Work: The defined scope needs to be sized. This is typically done using relative sizing techniques rather than absolute time estimates. Common methods include:
- Story Points: Abstract units representing the effort, complexity, and uncertainty of a user story. Techniques like Planning Poker, Affinity Estimation, or T-Shirt Sizing are used.
- Item Count: For teams with highly uniform work items, simply counting the number of items can be sufficient.
-
Gather Historical Performance Data: Collect relevant metrics from past iterations or periods.
- For Scrum Teams: Historical Velocity (average Story Points completed per Sprint) is a primary input.
- For Kanban/Flow-based Teams: Historical Throughput (number of items completed per unit of time) and Cycle Time distributions are crucial.
-
Apply a Forecasting Method:
-
Velocity-Based Forecasting:
For Scrum teams, this involves taking the total estimated Story Points for the scope and dividing it by the team's average historical velocity. This provides an estimated number of Sprints required. For example, if a backlog is 100 Story Points and the average velocity is 10 Story Points/Sprint, it would take approximately 10 Sprints.
To account for variability, teams often use a range (e.g., lowest historical velocity to highest) or statistical methods on velocity data.
-
Throughput-Based Forecasting (Monte Carlo Simulation):
This is a more sophisticated and increasingly popular method, especially for flow-based systems like Kanban. It involves running thousands of simulations using historical throughput data to predict a range of completion dates or the amount of work deliverable by a specific date, along with associated probabilities.
The simulation randomly picks historical daily/weekly throughput values and applies them to the remaining work items, repeating this process many times to build a distribution of possible outcomes. This naturally incorporates the variability observed in the past.
-
Capacity Planning:
While not a forecasting method in itself, Capacity Planning informs forecasts by considering the available team capacity for upcoming periods, accounting for holidays, training, or other planned interruptions. This adjusted capacity can then be used with velocity or throughput data.
-
Velocity-Based Forecasting:
- Communicate the Forecast: Present the results clearly, emphasizing the probabilistic nature and the Cone of Uncertainty. Avoid presenting single-point estimates as commitments. Visualizations like burn-up charts with confidence bands or Monte Carlo simulation outputs are highly effective.
- Refine and Adapt: As work progresses, new information becomes available, and the team's understanding evolves. Forecasts should be regularly reviewed and updated to reflect the current reality. This continuous feedback loop is essential for maintaining accuracy and relevance.
Key Concepts
Velocity
In Scrum, Velocity is a measure of the amount of work a team completes during a Sprint, typically expressed in Story Points. It's calculated by summing the Story Points of all items that meet the Definition of Done within a Sprint. Historical velocity is a primary input for forecasting how much work a team can realistically complete in future Sprints or for a larger release.
Throughput
Throughput is a flow metric that measures the number of work items completed over a specific period (e.g., per day, per week). It is a key metric in Kanban and Lean systems. Unlike velocity, which often uses abstract Story Points, throughput typically counts actual completed items. It's a crucial input for Monte Carlo simulations to forecast delivery dates or scope completion.
Cycle Time
Cycle Time measures the total time an item spends in an active work state, from when work begins on it until it is completed and delivered. It reflects the efficiency of the development process. Analyzing the distribution of historical Cycle Times can help forecast how long future individual items might take, contributing to more accurate overall project forecasts.
Monte Carlo Simulation
A powerful computer-based simulation technique used to model possible outcomes of an uncertain process. In Agile forecasting, it uses historical throughput or cycle time data to run thousands of hypothetical scenarios, generating a probabilistic distribution of potential completion dates or the amount of work deliverable by a specific date. This provides forecasts with confidence levels (e.g., 85% probability).
Cone of Uncertainty
The Cone of Uncertainty illustrates how the level of uncertainty in a project decreases over time as more is learned and decisions are made. At the project's inception, estimates are highly uncertain, but as requirements become clearer, design solidifies, and development progresses, the range of possible outcomes narrows. Agile forecasting explicitly acknowledges and communicates this inherent uncertainty.
Probabilistic Forecasting
This approach presents forecasts not as a single, definitive date or number, but as a range of possible outcomes with associated probabilities. For example, instead of saying "It will be done on June 1st," a probabilistic forecast might state, "There's an 80% chance it will be done by June 15th, and a 95% chance by July 1st." This provides a more realistic and transparent view of future possibilities.
Relative Sizing
Relative sizing is an estimation technique where work items are sized in relation to each other, rather than in absolute time units. Techniques like Story Points, T-Shirt Sizing, or Planning Poker are used to assign abstract values based on perceived effort, complexity, and uncertainty. This approach is less prone to individual bias and provides a more consistent basis for forecasting.
Practical Considerations
Benefits
- Improved Predictability: Provides more realistic and data-driven predictions compared to traditional methods, reducing surprises.
- Enhanced Stakeholder Communication: Offers transparent, probabilistic forecasts that help manage expectations and build trust.
- Better Decision-Making: Enables Product Owners and management to make informed decisions about scope, timelines, and resource allocation.
- Proactive Risk Management: Highlights potential delays or challenges early, allowing teams to address them proactively.
- Supports Product Roadmaps: Provides data-backed insights for creating and adjusting long-term Product Roadmaps and Release Planning.
- Focus on Flow: Encourages teams to analyze and improve their workflow by focusing on metrics like Throughput and Cycle Time.
Limitations
- Reliance on Historical Data: Forecasts are only as good as the historical data. Significant changes in team composition, technology, or work type can invalidate past performance.
- Team Stability Required: Highly unstable teams (frequent changes in members) will have inconsistent historical data, making forecasting challenging.
- Misinterpretation as Commitment: Stakeholders may still interpret probabilistic forecasts as fixed commitments, leading to frustration if not managed carefully.
- Doesn't Account for "Unknown Unknowns": While it handles variability, it cannot predict entirely unforeseen events or major shifts in project direction.
- Gaming the System: Teams might be tempted to manipulate metrics (e.g., inflate Story Points) if forecasts are used punitively.
Common Mistakes
- Treating Forecasts as Commitments: A forecast is a prediction, not a guarantee. Communicating it as a fixed commitment undermines its probabilistic nature.
- Ignoring the Cone of Uncertainty: Expecting high accuracy early in a project when uncertainty is naturally high.
- Using Insufficient or Irrelevant Data: Basing forecasts on too few data points or data from a vastly different context (e.g., a different team or project type).
- Focusing on Single-Point Estimates: Providing a single date or number without a range or probability, which is almost always misleading.
- Not Accounting for Non-Development Work: Forgetting to factor in holidays, training, support work, or Spikes when calculating available capacity.
- Comparing Team Velocities: Velocity is a team-specific metric and should not be used to compare the productivity of different teams.
- Lack of Transparency: Not explaining the assumptions, data, and methods behind a forecast to stakeholders.
Real-world Examples
- Scrum Team Release Planning: A Scrum team has a Product Backlog with 200 Story Points for their next major release. Their historical average velocity is 25 Story Points per Sprint. They can forecast that the release will take approximately 8 Sprints (200 / 25). To add realism, they might use their lowest and highest historical velocities to provide a range, e.g., 7-10 Sprints. This informs their Release Planning.
- Kanban Team Delivery Date Prediction: A Kanban team needs to deliver 50 specific features. Using a Monte Carlo simulation with their past 60 days of throughput data, they can generate a forecast. The simulation might show an 85% probability of delivering all 50 features within the next 75-90 calendar days, and a 95% probability within 100 days. This provides a clear, probabilistic range for stakeholders.
- Product Roadmap Alignment: A Product Manager uses forecasts to determine which Minimum Business Increments (MBIs) are feasible to include in the next quarter's Product Roadmap. By understanding the likely delivery range for each MBI, they can prioritize effectively and set realistic expectations for what can be achieved. This often involves Rolling Wave Planning, where initial forecasts are broad and become more precise over time.
- Impact of a Spike: A team plans a 2-day Spike to research a new technology. When forecasting their next Sprint's capacity, they reduce their typical available Story Points by the equivalent of those 2 days, ensuring the forecast remains realistic given the planned investigative work.
Best Practices
- Embrace Probabilistic Thinking: Always present forecasts as ranges with probabilities, not as single-point commitments.
- Use Multiple Data Points: Base forecasts on a sufficient amount of historical data (e.g., 5-10 Sprints for velocity, 30-60 days for throughput).
- Involve the Team: The development team should be actively involved in estimation and understanding the forecast, as they own the work.
- Regularly Review and Update: Forecasts are living documents. Update them frequently as new information, scope changes, or performance variations occur.
- Understand the Context of Data: Be aware of any significant changes (team members, technology, type of work) that might make historical data less relevant.
- Focus on Flow Metrics for Continuous Delivery: For teams practicing Continuous Delivery, throughput and cycle time are often more powerful forecasting metrics than velocity.
- Communicate Uncertainty: Explicitly discuss the assumptions and the level of uncertainty inherent in any forecast.
- Use Visualizations: Charts like burn-up charts with confidence bands or cumulative flow diagrams enhance understanding and transparency.
Frequently Asked Questions
Q: What's the difference between estimation and forecasting?
A: Estimation is about sizing individual work items (e.g., Story Points for a user story). Forecasting is about predicting future outcomes for a collection of work items (e.g., when a release will be done) using those estimates combined with historical performance data.
Q: Can I forecast if my team is new or unstable?
A: It's challenging. New teams need time to establish a stable historical performance baseline (velocity or throughput). For unstable teams, forecasts will have a wider range of uncertainty. Focus on establishing stability first, then gather data.
Q: How accurate are Agile forecasts?
A: Agile forecasts, especially probabilistic ones, aim for realism rather than absolute accuracy. They provide a range of likely outcomes with confidence levels, acknowledging the inherent uncertainty. Accuracy improves as more work is completed and the Cone of Uncertainty narrows.
Q: Should forecasts be treated as commitments?
A: No. Forecasts are predictions based on current information and historical data, often presented with probabilities. Commitments imply a guarantee. While teams commit to the work within a Sprint, a long-term forecast for a large body of work should be treated as a dynamic prediction, not a fixed promise.
Q: What tools help with forecasting?
A: Many Agile project management tools (Jira, Azure DevOps, etc.) offer basic velocity tracking. Dedicated analytics tools or plugins can perform Monte Carlo simulations and generate more sophisticated probabilistic forecasts based on throughput and cycle time data.
Q: How does a Spike affect forecasting?
A: A Spike is a time-boxed research or exploration activity. When forecasting, the time or capacity allocated to a Spike should be factored in, as it reduces the capacity available for delivering functional work. This ensures the forecast remains realistic.
Explore Related Topics
References & Further Reading
- Kanban Guide. (2020). kanbanguide.org
- Scrum Guide. (2020). scrumguides.org
- Vacanti, Daniel. (2015). Actionable Agile Metrics for Predictability: An Introduction. LeanDog.
- Magennis, Troy. (2014). Forecasting and Simulating Software Development Projects. Focused Objective.
- Larman, Craig. (2004). Agile and Iterative Development: A Manager's Guide. Addison-Wesley Professional.
- The Agile Manifesto. (2001). agilemanifesto.org