Software projects are time-limited processes in which a software product is created. When running such projects, it is necessary to include estimation techniques, which are an important and unavoidable part of the project.
Estimation is the process of finding an estimate, or approximation; a value that can be used for some purpose even if the input data is incomplete, uncertain, or unstable. An estimation can determine how much money, resources, effort, and time is required for building a specific system or product.
Estimation can be based on:
These are the main steps when estimating a software project:
Estimation doesn't need to be a one-time task in a project. It can take place during acquiring a project, during project planning, during the execution of the project or whenever the need arises. The scope of the project should be considered before estimation begins. Any historical data about the project can prove useful because the estimation process will be sped up, facilitated, and overall more accurate.
Metrics of the project can offer a historical perspective – they are valuable for generating quantitative estimates. Planning requires the technical managers and the software team to make an initial commitment as it leads to responsibility and accountability. Past experiences can be of great value. It is important to use at least two types of estimation techniques so that the gained values could be adjusted and compared.
The decomposition technique is most frequently used when estimating projects. Decomposition techniques use the divide and conquer approach. Estimating size, effort, and cost is performed in a stepwise manner by breaking down a project into the main functions or related software engineering activities.
It is performed in five steps:
Step one: Understand the scope of the software that is going to be built
Step two: Estimate the size of the software
Step three: Generate estimates of effort and cost
Step four: Compare estimates
Step five: Determine causes of divergences between the estimates and reconcile the estimates
Accuracy is an indicator of how close something is to reality. Whenever an estimation is generated, it is necessary to know how close the numbers are to reality. It should be strived for each estimation to be as accurate as it can possibly be, considering the data available at the time of the estimation’s creation. And of course, you don't want to show an estimation that instills a false sense of confidence in the numbers.
Important factors that affect the accuracy of estimations are as follows:
Some guidelines that can make the estimation more accurate:
To assure accuracy, it is always useful to use at least two estimation techniques and compare the results.