Software project estimation is a challenging yet extremely task in software engineering. To have a successful software project, accurate estimation is critical. The estimation ensures a defined and planned approach for development and execution.
Many organizations tend to not focus on the accuracy of software project estimation. They may either underestimate or overestimate. Both are dangerous scenarios. If estimation is done inaccurately, software projects are bound to fail due to poor resource allocation – human resources (leading to burnout), time (resulting in under-scheduling and hence missed deadlines), and effort estimation (which affects the quality of the delivered product). Improper estimation severely affects the credibility of the developer.
Over-estimation also has a negative effect on the project. Allocating more resources than required results in increased cost, which affects the ROI of the project, enhanced schedule for project delivery and delay of resource usage or other projects in line.
Steps That Should be Followed in Software Project Estimation:
1. Estimate the size of the project in terms of number of screens, lines, function points, and validations.
2. Analyze the UI complexity, logical complexity, and validation complexity.
3. Evaluate the Data Sources and third party integration.
4. Consider the choice of technology, framework, and platform that will be used.
5. Evaluate the skill level required and the project management methodology that will be used for the development process.
6. Analyze the effort required to write the code in terms of man-hours, the time that will be required to complete the project, and the overall cost for project completion.
Estimation begins with approximating the size of the project by evaluating the number of screens through function point analysis, which is used to estimate the user functions per screen. For example, a customer’s requirement specifications can be drawn to enumerate the user functions. A verbal process or a whiteboard can be used to outline the estimate. Re-estimation should also be done after additional information on scope and requirements are acquired.
Past information of similarly handled project can be used as a starting point for the estimate. Quick estimates can be produced by filling the low and inaccurate estimates with various complex factors, skill inventory requirements, and project techniques based on the past experience of similarly developed software. Accurate estimates can be harnessed through product functionalities, which can be counted through the function points. For a large project – sub system, modules, methods, screens, dialogs, files, database tables, etc. can be individually estimated. Wireframing is another technique that analyzes data structure and provides an accurate estimate.
Effort estimation is done after defining the software development life-cycle, which specifies the design, development methodology, and testing process. Effort needs to be estimated for coding, documentation, prototype development, implementation, and testing. Similarly, the schedule should be estimated to analyze the personnel allocation on various small project phases, time for completion, and work allocation. Historical data or industry models can be used for this if needed.
Deploying an estimation tool such as Quick FPA can be rewarding for the organization. An estimation tool that has a simple set-up, is easy to learn and use as per unique development environments and project nature is something which cannot be replaced. Quick FPA is unique in the sense that it allows the estimator to do the estimation quite quickly – the primary element to attract and retain clients who normally do not prefer spending time on estimation activity. By simply setting Implementation platforms, Implementation types, and test environments, any developer/analyst can easily conduct estimation without much hassle as the process does not require deep technical know how. Even a layman can easily set up the estimation environment for estimation procedure. Newly launched in software development industry, Quick FPA is a boon in the software development landscape.
Cost estimation involves multiple factors such as personnel, environment, and technical. Due to the complexity of tasks involved in the software development process, strict judgment of each task is limited. Cost and effort are intertwined for estimation. It can be done through Quick FPA, where cost factors can be designed as per different categories of effort specified in the tool.
To prevent future issues related to budget, cost estimation should be done accurately to prevent an unforeseen delay in software release. Since different countries have different hours/week designated for work, a conversion needs to be done for cost and effort estimation. Risk estimation also needs to be done, which covers a level of uncertainty in producing the quantitative estimates of size, cost, schedule, and resources.
The degree to which an organization aims to reach for project estimation is an individual decision and has various factors in play. The accuracy of estimation is directly related not only to the quality of product but also to the credibility of the developer, with respect to his ability to stick to time and cost. Estimation for larger projects should be broken into smaller phases. Estimation of the entire project all at once is not a viable option. High level estimates for the entire project must be provided as a means to lock the prospect, and then move into the estimation phase, which should also be a part of the project.
The article ‘Software Project Estimation’ covers individual cases on the subject of project estimation. For more resources and sample project estimates, visit the Quick FPA website. You can register and experience the ease and simplicity of setting an estimation environment for your project. Alternatively, we as experts can assist you with your estimation need and help you perform estimation in the quickest time to deliver high quality bug free products.
“Software Project Estimation.” 14 October 2014. Comnez. 14 April 2015
Lee, Samuel, Lance Titchkosky and Seth Bowen.
“Software Cost Estimation.” 2012. Department of Computer Science, University of Calgary. 14 April 2015
“Software Project Estimation.” 2007. University of Washington Computer Science & Engineering website. 14 April 2015