scispace - formally typeset
Open AccessBook ChapterDOI

Measuring and Monitoring Technical Debt

Reads0
Chats0
TLDR
The objective of the research agenda is to develop and validate a comprehensive technical debt theory that formalizes the relationship between the cost and benefit sides of the concept and propose mechanisms for measuring and managing technical debt in software product maintenance.
Abstract
Technical debt is a metaphor for immature, incomplete, or inadequate artifacts in the software development lifecycle that cause higher costs and lower quality in the long run. These artifacts remaining in a system 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 may speed up software development in the short run, but such benefit is achieved at the cost of extra work in the future, as if paying interest on the debt. In this sense, the technical debt metaphor characterizes the relationship between the short-term benefits of delaying certain software maintenance tasks or doing them quickly and less carefully, and the long-term cost of those delays. However, managing technical debt is more complicated than managing financial debt because of the uncertainty involved. In this chapter, the authors review the main issues associated with technical debt, and propose a technical debt management framework and a research plan for validation. The objective of our research agenda is to develop and validate a comprehensive technical debt theory that formalizes the relationship between the cost and benefit sides of the concept. Further, we propose to use the theory to propose mechanisms (processes and tools) for measuring and managing technical debt in software product maintenance. The theory and management mechanisms are intended ultimately to contribute to the improved quality of software and facilitate decision making in software maintenance.

read more

Content maybe subject to copyright    Report

APPROVAL SHEET
Title of Dissertation: Measuring and Monitoring Technical Debt
Name of Candidate: Yuepu Guo
Doctor of Philosophy, 2016
Dissertation and Abstract Approved: ( )
Carolyn Seaman
Associate Professor
Department of Information Systems
Date Approved: ________________

ABSTRACT
Title of Document: MEASURING AND MONITORING
TECHNICAL DEBT
Yuepu Guo, Ph.D., 2016
Directed By: Associate Professor Carolyn Seaman,
Department of Information Systems
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.

MEASURING AND MONITORING TECHNICAL DEBT
By
Yuepu Guo
Dissertation submitted to the Faculty of the Graduate School of the
University of Maryland, Baltimore County, in partial fulfillment
of the requirements for the degree of
Doctor of Philosophy
2016

© Copyright by
Yuepu Guo
2016

Citations
More filters
Journal ArticleDOI

A systematic mapping study on technical debt and its management

TL;DR: There is a need for more empirical studies with high-quality evidence on the whole TDM process and on the application of specific TDM approaches in industrial settings.

Software engineering economics

Barry Boehm
TL;DR: In this article, the authors provide an overview of economic analysis techniques and their applicability to software engineering and management, including the major estimation techniques available, the state of the art in algorithmic cost models, and the outstanding research issues in software cost estimation.
Journal ArticleDOI

A Balancing Act: What Software Practitioners Have to Say about Technical Debt

TL;DR: An interview study involving 35 practitioners from a variety of domains aimed to characterize technical debt at the ground level to find out how software practitioners perceive it and understand the context in which technical debt occurs, including its causes, symptoms, and effects.
Journal ArticleDOI

Using Natural Language Processing to Automatically Detect Self-Admitted Technical Debt

TL;DR: This paper presents an approach to automatically identify design and requirement self-admitted technical debt using Natural Language Processing (NLP), and shows that the proposed approach can achieve a good accuracy even with a relatively small training dataset.
Journal ArticleDOI

The financial aspect of managing technical debt

TL;DR: A glossary of terms and a classification scheme for financial approaches used for managing technical debt are introduced to prove beneficial for the communication between technical managers and project managers, and will help in setting up quality-related goals, during software development.
References
More filters

Software engineering economics

Barry Boehm
TL;DR: In this paper, the authors provide an overview of economic analysis techniques and their applicability to software engineering and management, including the major estimation techniques available, the state of the art in algorithmic cost models, and the outstanding research issues in software cost estimation.
Book

Refactoring: Improving the Design of Existing Code

TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Book

Software Engineering Economics

Barry Boehm
TL;DR: In this article, the authors provide an overview of economic analysis techniques and their applicability to software engineering and management, including the major estimation techniques available, the state of the art in algorithmic cost models, and the outstanding research issues in software cost estimation.
Proceedings ArticleDOI

The WyCash portfolio management system

TL;DR: WyCASH+ is a portfolio management system which provides basic accounting, record-keeping and reporting, as well as analytical computations to assist the manager of cash portfolios, and employs object technology in order to quickly and effectively address the diversity present in the market.
Related Papers (5)
Frequently Asked Questions (10)
Q1. What are the contributions in this paper?

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, the authors carried out two types of studies – retrospective study and case study – on real software projects. 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. 

Therefore, the authors ’ ve included in their future work to study software projects in governmental systems, which will help us uncover more factors affecting benefits and costs of technical debt management and thus improve the generalizability of the theory they are building for technical debt management. Similarly, the authors also plan to study non-Agile projects ( all those they ’ ve studied have been Agile ), as software development process could affect technical debt management and the related decision making as well. N. Brown et al., `` Managing technical debt in software-reliant systems, '' in Proceedings of the FSE/SDP workshop on Future of software engineering research, Santa Fe, New Mexico, USA, 2010, pp. 47-52, 1882373: ACM. [ 29 ] 

Since technical debt is closely related to software risks, a process for managing risk is key to developing a technical debt management process. 

CRM consists of five continuous tasks to guide the risk management process: identify software risks using SEI’s risk taxonomy, analyze the risks to determine their probability of occurrence, impact on theorganization and the relationships between individual risk statements, plan risk mitigation for the identified risk areas, track individual risks, mitigation plans, and the risk process to determine theeffectiveness of mitigation actions and the risk process, control deviations from planned risk mitigation actions and make decisions,e.g., close, re-plan, continue tracking. 

The simplest metric for evaluating the potential loss of risk, i.e., risk impact, is to use an ordinal rating scale, which defines the impact as low, medium and high [62]. 

some approaches used for risk analysis, especially those used for probability estimation and risk prioritization, are also applicable to technical debt management. 

The dimensions of technical debt proposed in their study largely conform to the classification based on software lifecycle, including code debt, design and architectural debt, knowledge distribution and documentation debt, and testing debt. 

One strategy for paying off the debt associated with god classes is to choose classes starting with the upper left corner of the chart, and then moving down and to the right. 

The principal, interest probability and interest amount of technical debt in their proposed approach are initially estimated as high, medium or low, as is often done in risk estimation. 

for technical debt, intentional or not, the effect is that the maintenance time or cost is reduced in the current stage, i.e., technical debt speeds up software development in the short run.