Uplift execution predictability with data driven forecasting
Imagine a world that didn’t use forecasting models to predict the weather? Imagine we all had our own methods for figuring out future weather based on opinions rather than data driven, scientific modelling? It sounds silly right?
Weather forecasting saves thousands of lives annually with the ability to predict bad weather conditions like cyclones ahead of schedule, early action can be taken to reduce the disaster risk and protect people’s livelihood and lives.
The weather system is a complex system with many moving, interdependent variables and lots of unknown unknowns. Just like the software development process. So why today, in the data driven world that we live in, are we not taking a more scientific approach to software delivery and planning? When dealing with uncertainty, like the weather or software development, forecasting is very effective because it narrows the uncertainty in the decision making process, which saves time, gives confidence, it can also be used for scenario modelling to help assess the optimal path forward and it is self learning as the more data you feed back into the system the greater it will improve in its accuracy. Weather forecasting accuracy is 85%.
What is a forecast?
A forecast is the ability to predict what will happen at some point in the future. A forecast is a calculation about the future completion of an item or items that includes both a date range and a probability . Forecasting in the near term has a greater probability rating than something in the distance, which sets good expectation and the insight can be used to encourage the right discussions on paths forward and if a pivot is required. Also, forecasts are constantly updating and improving with new data points and are self learning/maturing.
What does a weather forecast measure?
Obviously the end state is to tell you what the weather will be like in the future. To predict the weather in the future, the following measures are tracked temperature, atmospheric pressure, humidity, wind speed, wind direction and precipitation amounts. Wind measures are taken with as few other obstructions as possible, while temperature and humidity measurements are kept free from direct solar radiation and isolation.
Why use forecasting for software delivery?
All technology teams are faced with the constant question of 'When will it be done and how much will it cost?' It is a reasonable question, after all, if we wanted to build a new house, we would want a price and timeframe from the builder. It is time to start answering this question using scientific method instead of guesswork. It is time to start forecasting. Forecasting is also a diagnostic tool to encourage the right discussions at the right time to enable fast decision making for success.
What data would we collect, track and trend for software delivery forecasting and execution predictability?
Cycle Time/Lead Time
Defects/Change Failure Rate
There are some basics that you will need to do to get started
Make work visible
Small batches of work
Create a common language for describing work
Start tracking the metrics and watching trends
Meaningful conversations + Actionable insights
Adapt and Learn
It is time to move software delivery into the data driven, digital first age. Opinion based, out of date planning no longer meets the needs of a progressive technology team who are moving into the cloud and leveraging devops principles.
Next week, i will walk you through an example to make it 'real'