MEASURING AND MONITORING TECHNICAL DEBT

Author/Creator

Author/Creator ORCID

Date

2016-01-01

Department

Information Systems

Program

Information Systems

Citation of Original Publication

Rights

This item may be protected under Title 17 of the U.S. Copyright Law. It is made available by UMBC for non-commercial research and education. For permission to publish or reproduce, please see http://aok.lib.umbc.edu/specoll/repro.php or contact Special Collections at speccoll(at)umbc.edu
Distribution Rights granted to UMBC by the author.

Abstract

Technical debt is a metaphor for the effects of delayed software development and maintenance tasks. Due to the delay, software may carry immature artifacts in its lifecycle, e.g., immature design, incomplete documentation, etc., which may affect subsequent development and maintenance activities, and so can be seen as a type of debt that the system developers owe the system. Incurring technical debt is common for software projects and can often increase productivity in the short run. However, like paying interest on the debt, such benefit is achieved at the cost of extra work in future. In this sense the technical debt metaphor characterizes the relationship between the short-term benefits of delaying certain software tasks or doing them quickly and less carefully and the long-term cost of those delays or shortcuts. It should be noted that the extra cost may not be realized if the portion of a system containing technical debt will never be touched in the future. Therefore, the problem boils down to managing risk and making informed decisions on which delayed tasks need to be accomplished, and when. Currently, managers and leaders of software maintenance carry out this risk analysis implicitly, if at all. However, on large systems, it is too easy to lose track of delayed tasks or to misunderstand their impact. The result is often unexpected delays and compromised quality. Therefore identifying, measuring and monitoring technical debt would help managers make informed decisions, resulting in higher quality of maintained software and greater maintenance productivity. The objective of this research work is to contribute to a comprehensive technical debt theory that characterizes the cost and benefit sides of technical debt management. To achieve this objective, we carried out two types of studies - retrospective study and case study - on real software projects. Through decision simulation, the retrospective studies uncovered the benefits of explicit technical debt management. The case studies revealed the costs of technical debt management. The results from the studies provide insights into the technical debt management problem, thus facilitating decision making in software projects and practical application of technical debt management in the software industry.