Traditionally, answering the question “When will it be done?” happens in a deterministic way where teams prepare strict deadlines for their projects.
And while this approach works for stable projects, operating in a volatile environment requires a way to reflect our plans’ uncertainty. This calls for probabilistic planning, where project managers communicate possible outcomes (forecasts) instead of specific dates (estimates).
Project Forecasting vs. Estimating in Agile and Kanban
As you are probably familiar, the standard way of making predictions in Agile is by measuring the size of work items (in story points) and tracking velocity. However, this approach poses some problems for the predictability.
A common phenomenon is when two or more work items, estimated with the same amount of story points, have differences in their completion times. This creates discrepancies in our real capabilities and leads to spending valuable time in re-estimating.
Furthermore, story points don’t account for components such as high amounts of WIP, time spent in queues, and blockers. But those are all factors that influence when a project will be done.
That’s why to create predictability, we should focus on project forecasting by using historical data. In Kanban, for example, we do that by measuring metrics such as lead time, cycle time, and throughput. Combining them gives you all you need to simulate different probabilities of project completion.
To accomplish this in practice, you need a system that collects and processes the data. This is where Kanbanize can help.
How to Forecast Projects with Kanban and Kanbanize?
The main focus of Kanban is on flow management. The idea is to progressively evolve your work process by measuring workflow data and then using it to achieve more predictable service delivery.
With Kanbanize, you can collect that historical data and then apply Monte Carlo simulations to derive a given certainty of when a project will be done or how much scope you can complete by a specific date.
For example, instead of giving promises that “X” will be completed by the 4th of June, you can use your past performance to forecast that there is 85% certainty for “X” to be done by then. Through the Monte Carlo simulation, you can also segment your data based on your work process structure. This will give you a more refined probability of when something could be completed.
Before you can start doing all of that, however, there is a necessary prerequisite – your workflow’s stability.
Laying the foundations of a stable workflow
In Kanban, project forecasting is tightly related to how stable and predictable your workflow is. In other words, you need to balance work arrivals with departures, monitor increasing WIP, and alleviate bottlenecks so you can maintain a smooth flow.
With Kanbanize, for example, you can place WIP limits on your Kanban boards and focus your team’s attention on finishing rather than starting new work. Furthermore, with the help of Cumulative flow diagrams, you can track how work is flowing through your process.
The important thing here is to spot if bands are expanding. If that’s the case, more work arrives than departures your process, which is likely to accumulate lengthy queues (bottlenecks). This will increase your cycle time and negatively impact your system’s predictability.
Ensure that you analyze your workflow regularly and limit WIP, so you can soon start to see a more stable and predictable workflow.
Forecasting projects with historical data
Once we have the above prerequisite, it’s time to start making our forecasts in Kanbanize. For every project you create in the system, you will notice a special tab called “Forecast”.
For the sake of the example, let’s say that you are undertaking a project to improve your product’s UX design. You’ve collaborated with your team to prepare the initial scope, and you’ve broken it down into some work items.
As we mentioned above, we use the Monte Carlo simulations for project forecasting.
That’s why the “Forecast” tab includes an integration between them and the historical data of the broken down work items. This is done to run simulations based on similar tasks (to the ones in your current project), which you’ve completed in the past.
As a result, the system will populate different outcomes for the completion of the project: “optimistic”, “realistic”, “pessimistic”, and “very pessimistic”.
There are a few important things to mention here.
First of all, you should decide what certainty you want to commit to. As you can see from above, I’ve chosen the 85th percentile, which means that (based on my historical data) there is an 85% chance of the forecasted duration to be correct. If you want to increase the forecast’s certainty, though, you can select a higher percentile (ex. 95%) which will result in longer durations.
Furthermore, another important parameter is the “Scale” function. This helps you assess the complexity of the project and the parallelism of its work items.
For example, let’s say that for the engineering design project, you’ve identified that roughly 30% of your tasks will need more research than usual. To reflect this in your plan, you can simply lower the “Scale” indicator from 1 to 0.7. As a result, you will be able to integrate that uncertainty within your original forecast and increase its duration by approximately 30%.
Disclaimer: This is a premium feature in Kanbanize, which is in official beta. To learn more about it, visit our knowledge base.
It’s important to remember that all of this will not happen right off the bat because you need to gather historical data of your throughput and cycle times. Still, even a few completed projects will enable you to start planning in a way that reflects the uncertainty which befalls most knowledge work projects nowadays.
As a result, you will create forecasts based on what really happened and not what you thought might happen (estimation).
Benefits & Use Cases of Project Forecasting
Let’s take a look at some of the key benefits of project forecasting, including a common use case.
- Answer the question “When will it be done” – This is a common question among PMs. The problem is that in a knowledge work environment, it’s very difficult to give a clear answer because requirements frequently change.
A common use case is when you get asked that during a meeting with an important stakeholder. Instead of trying to predict the future, with project forecasting, you can communicate an “optimistic”, “realistic” and “pessimistic” variant of project delivery with a given probability. This allows you to factor uncertainty in your plans, create buffers, and reflect your team’s real capabilities.
- Save time from estimating and re-estimating – While estimating might be your only choice to plan when you don’t have sufficient data yet, it shouldn’t be your “go-to” solution. Estimating practices take the time that could be spent on delivering actual value.
With project forecasting, you need to focus on increasing the predictability of your process. Then make sure that you discuss the complexity of the project and your team’s available capacity. The forecasting algorithm will take care of the rest.
- Quickly adjust your plans – A common scenario for knowledge work projects is for a new scope to be added midway through the project. When you have an automated system that runs thousands of simulations to predict future outcomes, you don’t have to estimate the new work manually. Just add it to the project, determine how it affects your “scale” factor, and run the simulation.
Take Small Steps & Continuously Improve
Project forecasting is a vast topic that I am only scratching the surface of. There are a lot of factors that you need to consider before starting to make accurate forecasts.
Still, the concept is important. You can estimate in the beginning but ensure that every day you take another step to making your process more predictable. This will allow you to continuously improve your forecasts and eventually create truly agile plans for your projects.