A lot of hard work goes into software estimation. But the intrinsic nature of estimation is surrounded by uncertainties and risk which makes it difficult to estimate effort and cost accurately. As a development company, you would never think of accommodating approximation in estimation as this would mean putting the success of the project at stake. Both underestimation and overestimation are detrimental to project success having huge financial and brand attrition ramifications.
The most cliché yet the most important question for any software development team is that –
How can you as a developer ascertain that your estimates are the closest to accuracy?
Requirements Analysis is the First Step to Ensure Estimation Would be Correct
Various techniques and models have been developed and researched in the past to establish accuracy in software estimation. The truth of the matter is accuracy in estimation is a direct function of accuracy in requirements and creating all story points which would affect the system. So the prime task for any development team is to focus on breaking the system correctly into the most effective units for specific and detailed requirements analysis. With years of experience and client handling, I am sure you would attain this with great magnificence! After all your that’s is why your are champions in development field!
We then arrive at the second stage – creating estimates out of your requirements – which by now, you have sorted through with great deliberation. You will now have to uncover the uncertainties and risk for effort and cost estimation. Some of these variables are known while the others would be hidden. A software estimator has to have a comprehensive environmental analysis of various known and unknown elements. You need to distribute effort across various categories of development activities, assess the different types of risk associated with your resources, manage them well, negotiate scope with your client and set standards (study effect of effort factors). This lands you to the second most important question –
How do I decide how much effort to allocate for a particular development activity?
The answer is simple – Build an effort model.
Have a Well Defined Effort Model in Place
An effort model will help the development team to distribute effort hours across different categories of the project. Since complexity and project size affects productivity, it is essential to create baseline development productivity. This can be used for estimating future projects. Trying, testing and improving the effort model will help you to take sound decisions. A well defined effort model helps in allocating effort across various project activities (with precision) for effort estimation. The accuracy of effort estimation is high. Besides, the estimation of risk exceeding a specific effort value can be done. Not only this, risk and opportunities associated with resources (for a project) can be assessed. Factors which would reduce overall project effort values can be assessed. The amount of risk for a project can be analyzed by testing the successful effort distribution of a past project with a current effort distribution. This would help to further create realistic effort and cost estimates and justify the same with your clients. By conducting an analysis, various categories of project and effort distribution across them, the productivity of the development activity can be studied and hence improved. 
Use Estimation Software Once Effort Model Enables Effort Distribution
At this stage, you can use a software estimation tool. Here the distribution of calculated and assessed effort across development, version control, build, installation and deployment can be easily allocated to create effort estimates. You need to further define and create the various ‘implementation types’ for the system. Use your effort model to assign a base effort for the ‘type’ depending on the platform to be used, the number of validations to be done and any option which needs to be computed. The effort model will help you decide the average effort to be applied for a test case.
Using your effort model in combination with estimation software helps increase robustness of the estimation process. The project manger can depict the effort estimates as justifiable with relation to current scope. In case the client feels the estimate to be high, the project manger can use the effort model to show why and where particular effort values are distributed. Through the estimation tool this can be visually and automatically represented – hence giving greater flexibility to the estimator and the client. To give an example, if estimates appear high due to poor involvement of customer, or certain factor – the same can be resolved to make it accepting to both client and the developer. Negotiation would be more sound and justifiable if effort model and estimation tool goes hand in hand.
To briefly sum up, estimation of effort and hence cost can be simplified, if you employ estimation software to calculate estimates. This process would be quick, easy and require less labor and technical expertise. But to ensure that effort value distribution across various project activities are sound and realistic, it is essential for the development company to evolve an effort model for itself based on project complexity and type. This would ensure that effort distribution is based on some foundation. The overall estimates would be more accurate and realistic in nature and help your development team to negotiate the scope more aggressively and soundly!
Continue reading on software estimation and estimation tools in the following posts. For support and assistance in software estimation, register on our website – www.quickfpa.com. Our estimation tool is unique in helping you do the quickest estimates for your project. It is simple to set up and easy to use. Contact us for more assistance.
Adam Trendowicz, Ross Jeffery.
“Model Application.” Adam Trendowicz, Ross Jeffery. Software Project Effort Estimation. Springer, 2014. 361.