search menu icon-carat-right cmu-wordmark

A Field Study of Technical Debt

October 2015 Podcast
Neil Ernst

In this podcast, Dr. Neil Ernst discusses the findings of a recent field study to assess the state of the practice and current thinking regarding technical debt and guide the development of a technical debt timeline.

The main surprising thing for us, even though we are architecture researchers, was just how big a role people were saying architecture sources were for their technical debt.

Publisher:

Software Engineering Institute

Listen

Watch

Abstract

In their haste to deliver software capabilities, developers sometimes engage in less-than-optimal coding practices. If not addressed, these shortcuts can ultimately yield unexpected rework costs that offset the benefits of rapid delivery. Technical debt conceptualizes the tradeoff between the short-term benefits of rapid delivery and long-term value. Taking shortcuts to expedite the delivery of features in the short term incurs technical debt, analogous to financial debt, that must be paid off later to optimize long-term success. Managing technical debt is an increasingly critical aspect of producing cost-effective, timely, and high-quality software products, especially in projects that apply agile methods.

A delicate balance is needed between the desire to release new software features rapidly to satisfy users and the desire to practice sound software engineering that reduces rework. Too often, however, technical debt focuses on coding issues when a broader perspective—one that incorporates software architectural concerns—is needed. In this podcast, Dr. Neil Ernst discusses the findings of a recent field study to assess the state of the practice and current thinking regarding technical debt and guide the development of a technical debt timeline.

About the Speaker

Neil Ernst

Dr. Neil Ernst researches the intersection of requirements engineering, quality attributes, and agile  and iterative development. His work also includes developing new theoretical frameworks, conducting empirical studies, and communicating results to the wider community. Prior to joining the SEI, he was a research and teaching fellow at the University of British Columbia in Vancouver. He earned his doctoral degree in software engineering from the University of Toronto.