Crystal Ball Revisited

Back in December 2015, I wrote a blog post called Looking into the Crystal Ball. In my role of Lead Delivery Manager, I'm spending a good proportion of my time thinking about capacity planning, roadmaps, delivery of in-flight initiatives, and it got me thinking about estimates and estimation all over again.

I don't spend much of my time involved in financial discussions but recently I was interested in the financial re-forecasting activities that had been talked about at a company townhall. It occurred to me that by replacing a few words in the description of why a financial re-forecast is done, it gives us a pretty good description of software development estimation...and the challenges of getting it right.

The statement below is a few sentences collected from across the internet about financial re-forecasting, edited slightly to show how closely it also describes software delivery.

As a CFO or a Finance Director CTO or Delivery Director, you know the importance of re-forecasting. Re-forecasting gives you the ability to adjust your projected revenues, expenses and overall anticipated bottom line based on actual performance delivery capacity and timescales based on current information, which is essential in allowing you to adjust for continually changing business events priorities, scope, complexity. Re-forecasting or ‘budget-flexing ‘delivery-flexing' is the process of revising the original financial forecast delivery forecast based on actual data.

Or put another way:

"Life moves pretty fast. If you don’t stop and look around re-forecast once in a while, you could miss it." – Ferris Bueller - circa 1986.

Across the IT industry, there's still evidence that estimates tend to be seen as guarantees, and that it’s possible to know upfront every subtlety, nuance, and challenge that will arise during the development process. Even with weeks of upfront analysis we know this isn’t possible because analysis isn’t a flawless crystal ball, it’s a method of prediction based on the information we have at the point the analysis is done.

Side note: If upfront analysis guaranteed perfect forecasts, no Government project would have ever run late or gone over budget (can I interest anyone in some old Prince2/Waterfall books??)

The bigger the piece of work the more complexities there will be and the more inexact any forecast will be. But that’s not to say that small pieces of work are any less difficult to predict, we’ve all taken on that small piece of DIY that we are sure will only take us 10mins, only to still be there 2 hours later after several trips to the shed and at least one to the DIY store.

That being said I’m certainly not advocating for a #noestimates approach. We have to recognise that stakeholders have a need for expected dates for launch of a product, there may be dates that are to be included in contracts with new partners (potentially with financial penalties if they are not met) there may be many other activities that can’t be started until a new feature is launched…a TV advertising campaign for example.

We find ourselves in a world where ‘to the day’ accuracy is desired but where ‘to the day accuracy’ isn’t actually possible, so what do we do?

We certainly don’t want to be in a position where every forecast has to have months of contingency built in. That would mean even the smallest project being forecast as 6months+ just to ensure there’s much more time available than is needed. That doesn’t feel like forecasting at all, that doesn’t feel like teams/departments working together to understand the challenges that arise and working together to solve them.

Openness, transparency, communication is what is required. Clarity on the forecast provided so those reading the information know what the margins of error are (i.e. provide and regularly update the forecast as more information becomes available) regular checking of progress against the forecast (i.e. daily stand-ups to check progress and priorities, call out blockers or other constraints) making this information available to all (i.e. provide the real info be it good/bad/indifferent).

It’s only by everyone understanding the challenges, having the same information available to them, and working together, that we have any hope of keeping the expectations and the forecasts as closely aligned as possible. When we are purposeful and driven, and brave and decisive, we can work better together to ensure we're putting our customers first. When we do this, everyone benefits.