The process of creating custom software is one of gradual refinement. You start with a broad concept, then hone it in accordance with the objectives of the project and the product. It is your goal to estimate the budget and timing required to accomplish a certain level of functionality. The intended result of the project will determine cost estimations, timings, and feature combinations due to the various ways the development might ultimately take shape. This blog will highlight requirements gathering and the cone of uncertainty.
Multiple decisions on feature-related issues will be made during the software development process. Ambiguity in how decisions will be made leads to uncertainty in software estimation. Uncertainty decreases as you take more of those decisions.
Researchers have discovered that project estimates are prone to predictable levels of uncertainty at different phases as a result of this decision-making process. The Cone of Uncertainty below shows how estimates become more accurate as a project progresses.
The horizontal axis shows the refinement of requirements as more and more decisions are made and the vertical axis contains the estimated effort. As illustrated by the cone, estimates created early in the project are subject to a high degree of error. This is due to limited information available at the start of the process when software developers and customers begin working together to determine a mutual understanding and agreement on the outcome of the development project and how they will achieve that goal.
According to research, the requirements gathered at the start of a software development project affects how accurately estimates will be. Estimates will be more precise where precise requirements are agreed. The software project itself has unpredictability, which is why the estimate also has fluctuation. The project’s own variability must be decreased if the variability in estimation is to be decreased at all.
There are several ways in which custom software development companies can deal with the Cone of Uncertainty:
Pad the estimate
One typical reaction is to double or triple the estimate the next time after experiencing the pain of underestimating. Although padding the numbers is harder than it sounds, this definitely reduces the initial danger.
If you provide a large number, sponsors will object and refuse to support your project. If you give a low figure, you run the risk of running out of money. When bidding on fixed bid contracts, where there is even greater pressure to keep the numbers low, this becomes doubly risky.
Most projects increase the final figures by some amount of padding to allow for error. Teams can also contrast this project with similar ones.
Size the project relatively
Utilise experience and information from previous projects of a similar size, scale and estimate the project relative to what you have done before.
Fund incrementally
With incremental funding, funds are released as the project progresses. Initially, funding is provided to complete initial work and provide a more accurate time estimate.
It is not infallible. As the project progresses you still risk running into problems. However, by providing a software development team a starting budget, letting them construct an initial solution, and then monitoring how long that takes, it is possible to significantly reduce the variation in initial estimates.
Use a requirements gathering tool
The best way to counter the cone of uncertainty is by using a requirements gathering tool to increase the accuracy of requirements at the start of a project. Moreover, by using a requirements gathering software it will ensure that everyone within your organisation will follow the same procedure throughout. This should create more detailed requirement specifications for your projects. Ultimately, resulting in more efficient workflow with less time and money wasted.
Read our ‘Complete Guide to Requirements Gathering in 2023‘ for more!