A Comparison of Effort Estimation Techniques in Software Development Projects

WANG Qiu-Zhen
DOI: https://doi.org/10.3785/j.issn.1008-942x.2005.04.012
2005-01-01
Abstract:Estimating the effort to develop a software system is an important project management concern. There are a number of different effort estimation techniques currently in use in the software industry. They fall into three general categories: expert judgment-based techniques, algorithmic model-based techniques and learning-oriented techniques. Expert judgment-based techniques are the techniques in most frequent use. They are useful in the absence of quantified, empirical data. However, ″intuitive″ processes constitute a major part of the expert estimation. It is difficult to articulate the estimation process and achieve organizational learning. Algorithmic model-based techniques attempt to represent the relationship between effort and one or more project characteristics. The existing algorithmic models, however, fail to produce accurate estimates of the development effort. There are four main disadvantages with these models. First, there is the problem of software sizing. Obtaining consistent size estimates and interpreting such estimates require high skill levels and good judgment. Secondly, there is the issue of historical data. Researchers have proposed models based on site-specific historical data, so these models can't be applied to local development circumstances. Thirdly, the dominant method of data analysis has been in linear regression. A good regression model needs a relatively large dataset which can be a problem in the software estimation field. Furthermore, the underlying assumptions of regression analysis are often questionable. Finally, many models estimate the effort for the later stages of the development process but almost ignore the early stages. Learning-oriented techniques are based on artificial intelligence techniques. Learning-oriented techniques don't require any function form assumption, as opposed to algorithmic models and they are good at modeling complex non-linear relationships. The performance of the learning-oriented techniques is to a large degree dependent on the large dataset for training or analogy. Each of the existing techniques for effort estimation has its advantages and disadvantages. No single technique is best for all situations, and all techniques are challenged by the rapid pace of change in the software technology. In order to improve estimation accuracy, a software development organization should: (1) select proper estimation techniques according to specific project characteristics and information availability; (2) combine more estimation techniques to improve effort estimates; (3) adapt algorithmic models to local circumstances; (4) develop their own store of projects; (5) estimate the effort for the whole development process, considering the effort of the early stages sufficiently.
What problem does this paper attempt to address?