If not earlier, in the last 12 months, we have learned that long-term business planning will not yield to our demands for precision, accuracy or security. A world-scale epidemic shattered many businesses' fundamentals, overturning annual plans and long-term expectations of companies across the spectrum. Certainty was out, and businesses were left with loads of uncertainty to deal with.
Suppose you were fortunate to work or educate yourself as a project manager. In that case, you might have come across a concept that helps us understand the dynamics of complex projects, i.e. projects running over time and extending well into the future. As the future is something we cannot predict with certainty, it becomes apparent that our plans and projects are subject to variability and risks - things we would like to see reduced as much as possible.
Cone of uncertainty is a concept in project management that I like to discuss with teams at Infosit and with clients and partners. It captures an important aspect of software planning and delivery, turning our attention to the uncertainty inherent to many projects and our efforts to decrease it over time. Developers and project managers are aware of this concept, as they've usually been through wrong cost estimations, broken deadlines and deliveries that didn't entirely meet customer expectations.
To manage software projects properly, it is useful to look at the specific nature of processes in which software is planned, built and delivered to clients. These processes will usually extend over a period of time. It can be several weeks to several months or even years. They will involve highly specialist knowledge, groups of people, structured and unstructured input, and a number of external factors that can influence both the timeline and progression. Requirements will often be tied to complex business environments, subject to rapid change. This can all have a major impact on the project cost, duration and outcomes. As Wikipedia puts it, "at the beginning of the project, fairly little is known about the product or work results, so estimates are subject to large uncertainty. With more research and development is done, more information is learned, and the uncertainty tends to decrease."
In other words, as the project progresses, a series of decisions and procedures can help managers to reduce uncertainty. This realization has guided software companies to adapt and make commitments, not at the very project beginning but further down the line when they've had a chance to collect sufficient input and experience. Otherwise, estimations can easily prove inaccurate. Software companies also understood that managing a project was a lot about decreasing the uncertainty around the cost, duration and deliverables.
In a sense, the cone of uncertainty can apply to many areas of life. To give you an example, let's say that today I am planning a 15-kilometre bike ride which I intend to start and finish the next day. I can put together a very detailed plan, check the route and distance on the map, prepare my bike, water and any equipment I might need. I can put together a perfect plan, and indeed some uncertainty can be removed with me being well informed and perfectly prepared for the trip. However, some things and events which are not under my control can still impact the outcome. The next morning's heavy rain can ruin my plan entirely and steer my project towards a different outcome. In a different scenario, I can wake up with a cold, which can cause me to cycle much longer than I expected.
It is useful to recognize there is a level of uncertainty that can only be removed with the passage of time and with me actually starting the ride. Once I am on the bike, lots of the earlier uncertainty is gone. And although not eliminated entirely, uncertainty keeps reducing as I keep cycling towards my destination. That is why lean and agile project management is more and more adopted by all types of companies, especially software development companies.
Get in touch to discuss!
Goran Mrvos, founder
If you’re looking for a results-driven, innovative software development partner to help capitalize on new, profitable opportunities, reinvent your brand, or deliver incremental value to your business, we can help.