Technical debt is currently receiving great attention from researchers, because it is believed to affect software development to a great extent. However, it is not yet clear how technical debt should be managed. This is specifically true in time-boxed development processes (e.g., in agile processes organized into development sprints of fixed duration), where it is possible to remove technical debt as soon as it is discovered, or wait until the debt reaches a given threshold, or wait until a whole sprint can be dedicated to technical debt removal, etc. We aim at investigating the consequences of different technical debt management options, especially as far as debt removal and program enhancements are concerned. We are interested in the consequences on both the amount of functionality and the quality of the delivered software. We propose a System Dynamics model that supports the simulation of various scenarios in time-boxed software development and maintenance processes. The proposed model is conceived to highlight the consequences of management decisions. Since this is our focus, our model abstracts from a few confounding factors that may be present in software projects, which would basically introduce some noise and blur the effect we want to study. Nonetheless, the model can be easily extended and adapted to represent these other factors adequately. The proposed model shows how productivity and product quality depend on the way technical debt is managed. Our model yields quantitative indications that can support the estimation of the economic consequences of different management strategies. Our study shows that different strategies for managing technical debt in a time-boxed development and maintenance process may yield different results-in terms of both productivity and delivered software quality-depending on a few conditions. Software project managers can use customized System Dynamics models to optimize the development and maintenance processes, by making the proper decisions on when to carry out maintenance dedicated to decreasing the technical debt, and how much effort should be devoted to such activities.
A Method to Optimize Technical Debt Management in Timed-boxed Processes
L. Lavazza;S. Morasca;D. Tosi
2018-01-01
Abstract
Technical debt is currently receiving great attention from researchers, because it is believed to affect software development to a great extent. However, it is not yet clear how technical debt should be managed. This is specifically true in time-boxed development processes (e.g., in agile processes organized into development sprints of fixed duration), where it is possible to remove technical debt as soon as it is discovered, or wait until the debt reaches a given threshold, or wait until a whole sprint can be dedicated to technical debt removal, etc. We aim at investigating the consequences of different technical debt management options, especially as far as debt removal and program enhancements are concerned. We are interested in the consequences on both the amount of functionality and the quality of the delivered software. We propose a System Dynamics model that supports the simulation of various scenarios in time-boxed software development and maintenance processes. The proposed model is conceived to highlight the consequences of management decisions. Since this is our focus, our model abstracts from a few confounding factors that may be present in software projects, which would basically introduce some noise and blur the effect we want to study. Nonetheless, the model can be easily extended and adapted to represent these other factors adequately. The proposed model shows how productivity and product quality depend on the way technical debt is managed. Our model yields quantitative indications that can support the estimation of the economic consequences of different management strategies. Our study shows that different strategies for managing technical debt in a time-boxed development and maintenance process may yield different results-in terms of both productivity and delivered software quality-depending on a few conditions. Software project managers can use customized System Dynamics models to optimize the development and maintenance processes, by making the proper decisions on when to carry out maintenance dedicated to decreasing the technical debt, and how much effort should be devoted to such activities.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.