Hybrid Effort Estimation of Changes in Agile Software Development
Unlike traditional software development approaches, Agile embraces change. The resulting dynamism of requirements makes it challenging to estimate effort accurately. Current practice relies on expert-judgment that can be biased, labor intensive and inaccurate. Therefore, a systematic yet lightweight effort estimation methodology is needed to support expert judgment and improve its effectiveness. Such an approach will utilize the quantification of the impact of a requirement on software artifacts potentially affected by it. It will further introduce an explicit consideration of effort drivers that contribute to effort overhead. The aim is to synthesize research from three often orthogonal areas of research: (1) change impact analysis, (2) effort estimation (model and expert driven) and (3) software visualization. Hence, resulting in a hybrid methodology with tool support that incorporates expert knowledge, change impact analysis and enables an explicit consideration of cost drivers by experts to improve the effectiveness of effort estimation process.
KeywordsEffort estimation Hybrid Expert judgment Agile
1 Research Problem
Effort estimation in Agile relies on expert judgment, which is labor intensive, can be biased and inaccurate. Moreover it does not consider the data e.g. quantification of the impact of a change on the existing artifacts, as well as an explicit consideration of effort drivers contributing to effort overhead that affects the accuracy of estimates.
In software development, the requirements typically cannot be completely specified upfront and are developed as the project progresses. Therefore, the effort estimates need to be adjusted for every sprint in order to deliver project increment in time-boxed release. In such an environment, systematic effort estimation is challenging. While estimating the size of the change, its impact on other artifacts and context specific effort drivers need to be considered.
Currently, effort estimation in this context relies heavily on human judgment. A cross-functional team of experts estimate by consensus how much effort a certain change will entail. This approach is not only labor intensive but also has limited prediction accuracy due to the use of limited information (subjective judgment) and human judgment bias (individual and group effects).
Moreover, it does not objectively consider the potential impact of a change on existing software artifacts which makes effort estimates obtained, less reliable. In Agile development, the strict distinctions between various phases of software development are blurred. With cross functional teams and a shared responsibility for the product instead of individual artifacts, software development also includes e.g. testing and user-documentation beyond just writing the source code. Thus, an effort estimate has to consider the impact of a change on various software artifacts e.g. regression testing at unit and functional level is now often considered part of development teams responsibility as part of a sprint.
Therefore, an improvement potential exists with respect to systematic effort estimation in this environment and marks the contribution to the body of knowledge.
This thesis proposes combining expert knowledge with quantitative data i.e. quantification of the volume/size of change, and its impact on other artifacts. Moreover, the explicit consideration of the most relevant effort drivers that contributes to the effort overhead. This data and expert knowledge will constitute towards an effort model that will support the experts in making more accurate estimates. Furthermore, the organizational estimation knowledge including effort model will be stored for future reuse. This will help in mitigating the risk of estimation performance drop due to staff turnover as well as reducing the effort of expert involvement each time estimates are required.
3 Related Work
Three main related areas are briefly discussed below:
3.1 Effort Estimation Methods
In traditional software development, numerous effort estimation methods have been proposed in research. These may be classified as : Data-driven (model-based, memory-based and composite) methods, (e.g. COCOMO I, Case-based reasoning and COCOMO II). Expert-based methods like Wideband Delphi, Planning Game, Analytic Hierarchy Process. Hybrid methods like Expert-COCOMO, Bayesian Belief Nets, and CoBRA® .
Each of these methods claims to have addressed a problem in effort estimation, however very few of them actually demonstrated the claims in industrial setting. Also very few individual studies are found that address the effort estimation specifically in the Agile context. Expert-based methods are found to be the most used estimation method in Agile context but their estimation accuracy is hampered by inconsistencies and wishful thinking al. . However, due to the lack of evidence that model-based methods like COCOMO produce more accurate estimates than expert judgment, the use of the former approach is widespread . None of the existing estimation methods (in traditional or Agile development) so far have considered the quantification of the impact that a change has on existing software artifacts. Further, explicit consideration of the most relevant effort drivers is also not addressed in Expert-based methods. In Data-driven methods, to collect and analyze these effort drivers a huge amount of data and cost are required. The Hybrid methods, these effort drivers though are considered, but need to be adapted to Agile context.
3.2 Techniques for Change Impact Analysis
A secondary study on change impact analysis  has identified 23 techniques which are broadly based on dependency and traceability analysis. In the context of this thesis, these techniques will be analyzed for their support in estimating the impact of a change.
3.3 Tools for Visualizing Change Impact
To support experts in judging the impact of change, visualizations will be used. For example, to show which software components will be effected by an added functionality heat-maps can be created. Several of the techniques identified by Bixinli et al.  have tool support which will be considered in this research.
4 Research Methodology
The aim of this thesis is to develop a data driven, light-weight hybrid effort methodology supported with a prototype tool adapted to the Agile context.
For what purpose do practitioners perform effort estimation (project bidding, resource allocation, sprint planning, release planning etc.)?
For the various uses identified for effort estimation, what are the required and current levels of estimate accuracy?
How is effort estimation currently performed (which methods, data and tools are currently used)?
What support do practitioners need in their effort estimation tasks?
Which existing approaches for effort estimation are appropriate for an Agile context?
How can existing approaches be adapted for the Agile context (e.g. identifying a minimal set of effort drivers, identifying appropriate change impact analysis methods, necessary tool support)?
A literature review will be used to formulate and design further studies to explore questions 1–4. A web-based survey will be used to generate a broader understanding for the questions 1–3. While an exploratory case-study will be done to explore in-depth the concerns in questions 1–4. A secondary study will be conducted to answer question 5. Question 6 will be answered by utilizing the findings from answering the other questions and existing secondary studies on the related topics. Answering question will help to achieve the overall aim of the thesis.
This thesis work is being conducted in close collaboration with an industrial partner and the resulting solution will be evaluated in their company.
5 Results Achieved so Far
An exploratory case study was conducted in a large software company to investigate and understand their effort estimation process. The study revealed the purpose of doing estimation, estimation techniques used and effort drivers that affect effort estimation accuracy. It further emphasized the need of tool support for experts when making estimates.
Results of existing secondary studies on effort estimation in Agile development have been aggregated and will be used to design a web-based survey.
6 Publication Plan
The plan is to publish the results obtained from the exploratory case study conducted in a large software company. Moreover, the overall methodology including all the aspects i.e. change impact analysis, effort drivers and the underlying effort model. Finally the evaluation of the resulting methodology and supporting tool in an industrial setting are also planned to be published.
7 Future Agenda
Firstly designing and execution of an industrial survey to investigate the effort estimation practice. Secondly, existing secondary studies on effort estimation in traditional development have been identified. They will be analyzed with respect to their strengths and limitations, adaptability and extendibility to Agile context. Thirdly, the identification of variables to be used in estimation model for generating estimates with error and identification of requirements regarding quantification of impact of change. Fourthly, secondary studies on change impact analysis have been identified. These tools and techniques identified in these will be investigated for the purpose of change impact quantification. Lastly, the identification of requirements for tool support and the evaluation of both the resulting methodology and tool in an industrial setting.
- 2.Briand, L.C., Emam, K.E., Bomarius, F.: Cobra: a hybrid method for software cost estimation, benchmarking, and risk assessment. In: Proceedings of the 20th International Conference on Software Engineering, IEEE Computer Society, pp. 390–399 (1998)Google Scholar
- 5.Molkken, K., Jrgensen, M.: A review of software surveys on software effort estimation. In: ISESE 2003, Proceedings of the 2003 International Symposium on Empirical Software Engineering, pp. 223–230. IEEE (2003)Google Scholar
Open Access This chapter is distributed under the terms of the Creative Commons Attribution-NonCommercial 4.0 International License (http://creativecommons.org/licenses/by-nc/4.0/), which permits any noncommercial use, duplication, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, a link is provided to the Creative Commons license and any changes made are indicated.
The images or other third party material in this chapter are included in the work’s Creative Commons license, unless indicated otherwise in the credit line; if such material is not included in the work’s Creative Commons license and the respective action is not permitted by statutory regulation, users will need to obtain permission from the license holder to duplicate, adapt or reproduce the material.