This blog will demonstrate why cost estimates for custom software development projects are so broad.
What is an estimate?
It is important to note that 9/10 major projects experience a cost overrun.
How much will it cost and how long will it take to create this application? It’s a natural thing to ask given the vendor-buyer dynamic. An estimate is a tool for vendors to compete and win the bid, while it is often a tool for buyers to choose the fastest or most cost effective implementation. Once an estimate is given and work on the project begins, there is a deadline that must be reached and a budget to remain within. This means that a project usually must be completed within a predetermined timeframe and within the allocated budget defined in the project scope.
Complexity and Project Scope
Custom software development is a process of developing a software system to fulfil a certain objective. For example that might be processing invoices, making online sales, etc. Starting with a broad set of business requirements, you can then define and refine the requirements of the system to meet the project goals. Generally any organization wants to determine the cost and time needed to complete the project and they usually want to know this before committing to the expensive task of implementing the system.
Throughout the software development process, several iterations of requirements usually occur. Organisations can also ask for estimates are each of these stages. For example, a CEO may talk to a technical manager and with a very broad verbal project idea may ask for an estimate or even guesstimate as to how much it would cost to implement. The estimate given will no doubt be different than if the CEO presented a 100 page requirements specification. Ambiguity in software estimation results from uncertainty in the way requirements are defined and the accuracy with which they are captured at a particular point in the process. With each decision you make and refinement of requirements, the level of uncertainty declines.
As a result of this requirements refinement process, researchers have found that project estimates are susceptible to predictable amounts of uncertainty at certain periods. The Cone of Uncertainty below illustrates how estimations improve in precision as a project moves along.
The Cone of Uncertainty illustrates why custom software development projects can be hard to estimate the cost. Often the requirements gathering stage is not completed to a detailed enough level before estimates are given meaning there is inaccurate specification of the project and therefore inaccurate cost estimations. Without detail, estimators can assume certain attributes of the system. For example the specification does not mention the system will be available in foreign languages, someone forgot to specify this detail and the estimators have not factored this work into the estimate.
Using a requirements gathering tool to improve the accuracy of requirements at the beginning of a project is the greatest strategy to combat the cone of uncertainty. Additionally, adopting a requirements gathering programme can guarantee that everyone in your organisation adheres to the same process at all times. For your projects, this should result in more precise requirement specifications. In the end, this will lead to a more productive workflow with less time and money spent.
Changes to Requirements
Similarly, if the requirements capture is poorly executed it will increase the chances of changes to the project being made. Read more in our blog ‘Why a Requirements Gathering Solution is the Answer to Avoiding Death By Change Order.’
Again, to avoid these changes being made it is crucial you get the requirements gathering process right the first time. The best way of doing this is have a repeatable process implemented in a software tool. Learn more in our blog ‘Why You Should Use Software for the Requirements Gathering Process.’
Despite the best efforts, there are unknown variables which should be considered throughout the process, such as:
Cost of Labour
The cost of labour can affect cost estimates of a custom software development project. If a company is in a low cost labour area such as Asia and compared to a US company which have higher labour costs then the same size estimates, in terms of development days, can result in different costs.
Productivity of Company
Finally, another variable in the cost of custom software development is the productivity of the company you chose to work with. This is immeasurable, so it is important you select the right people to work with. Read more on this in our blog ‘How to Choose a Software Development Company.’
Conclusion
There are many factors which affect the cost estimates of custom software development projects. Some are unknowns which cannot be predicted in the early stages. However, to give the most accurate estimations it is crucial to properly gather the requirements – we cannot stress enough how important this is. Utilising requirements gathering software, offers the most effective way to ensure there are structured and detailed requirements.
If you have asked for estimates for a software project and the estimates vary quite widely then ask yourself if the requirements are detailed and clear. Requirements which leave room for estimators to misunderstand or make assumptions will result in a wider range of estimates for the project.
Our new product Requiment, guides you through prepared questions to determine a full and detailed requirement specification and project scope based on outcomes . This application acts as a virtual business analyst, guiding users through the requirements process, whilst providing insight and recommendations to the user based on the type of application being designed as well as trends from other users. Ultimately, our mission with Requiment is to make the process of software requirements capture more accurate, agile and efficient leading to more successful projects.