Making changes to software systems can prove costly and it remains a challenge to understand the factors that affect the costs of software evolution. This study sought to identify such factors by investigating the effort expended by developers to perform 336 change tasks in two different software organizations. We quantitatively analyzed data from version control systems and change trackers to identify factors that correlated with change effort. In-depth interviews with the developers about a subset of the change tasks further refined the analysis. Two central quantitative results found that dispersion of changed code and volatility of the requirements for the change task correlated with change effort. The analysis of the qualitative interviews pointed to two important, underlying cost drivers: Difficulties in comprehending dispersed code and difficulties in anticipating side effects of changes. This study demonstrates a novel method for combining qualitative and quantitative analysis to assess cost drivers of software evolution. Given our findings, we propose improvements to practices and development tools to manage and reduce the costs.
Description
SpringerLink - Empirical Software Engineering, Volume 15, Number 2
%0 Journal Article
%1 springerlink:10.1007/s10664-009-9118-8
%A Benestad, Hans
%A Anda, Bente
%A Arisholm, Erik
%D 2010
%I Springer Netherlands
%J Empirical Software Engineering
%K Empirical change code effort maintenance source study
%P 166-203
%R 10.1007/s10664-009-9118-8
%T Understanding cost drivers of software evolution: a quantitative and qualitative investigation of change effort in two evolving software systems
%U http://dx.doi.org/10.1007/s10664-009-9118-8
%V 15
%X Making changes to software systems can prove costly and it remains a challenge to understand the factors that affect the costs of software evolution. This study sought to identify such factors by investigating the effort expended by developers to perform 336 change tasks in two different software organizations. We quantitatively analyzed data from version control systems and change trackers to identify factors that correlated with change effort. In-depth interviews with the developers about a subset of the change tasks further refined the analysis. Two central quantitative results found that dispersion of changed code and volatility of the requirements for the change task correlated with change effort. The analysis of the qualitative interviews pointed to two important, underlying cost drivers: Difficulties in comprehending dispersed code and difficulties in anticipating side effects of changes. This study demonstrates a novel method for combining qualitative and quantitative analysis to assess cost drivers of software evolution. Given our findings, we propose improvements to practices and development tools to manage and reduce the costs.
@article{springerlink:10.1007/s10664-009-9118-8,
abstract = {Making changes to software systems can prove costly and it remains a challenge to understand the factors that affect the costs of software evolution. This study sought to identify such factors by investigating the effort expended by developers to perform 336 change tasks in two different software organizations. We quantitatively analyzed data from version control systems and change trackers to identify factors that correlated with change effort. In-depth interviews with the developers about a subset of the change tasks further refined the analysis. Two central quantitative results found that dispersion of changed code and volatility of the requirements for the change task correlated with change effort. The analysis of the qualitative interviews pointed to two important, underlying cost drivers: Difficulties in comprehending dispersed code and difficulties in anticipating side effects of changes. This study demonstrates a novel method for combining qualitative and quantitative analysis to assess cost drivers of software evolution. Given our findings, we propose improvements to practices and development tools to manage and reduce the costs.},
added-at = {2010-11-07T18:21:06.000+0100},
affiliation = {Simula Research Laboratory and University of Oslo, P.O. Box 134, 1325 Lysaker, Norway},
author = {Benestad, Hans and Anda, Bente and Arisholm, Erik},
biburl = {https://www.bibsonomy.org/bibtex/25dfd48bd7e230c81b8ffc8e219878b63/gron},
description = {SpringerLink - Empirical Software Engineering, Volume 15, Number 2},
doi = {10.1007/s10664-009-9118-8},
interhash = {e97eaa1a01af58ab2f6eb0fc5bd4cee9},
intrahash = {5dfd48bd7e230c81b8ffc8e219878b63},
issn = {1382-3256},
issue = {2},
journal = {Empirical Software Engineering},
keyword = {Computer Science},
keywords = {Empirical change code effort maintenance source study},
pages = {166-203},
publisher = {Springer Netherlands},
timestamp = {2010-11-07T18:21:06.000+0100},
title = {Understanding cost drivers of software evolution: a quantitative and qualitative investigation of change effort in two evolving software systems},
url = {http://dx.doi.org/10.1007/s10664-009-9118-8},
volume = 15,
year = 2010
}