Managing technical debt in software-reliant systems

  • Authors:
  • Nanette Brown;Yuanfang Cai;Yuepu Guo;Rick Kazman;Miryung Kim;Philippe Kruchten;Erin Lim;Alan MacCormack;Robert Nord;Ipek Ozkaya;Raghvinder Sangwan;Carolyn Seaman;Kevin Sullivan;Nico Zazworka

  • Affiliations:
  • Carnegie Mellon University, Pittsburgh, PA, USA;Drexel University, Philedelphia, PA, USA;University of Maryland Baltimore County, Baltimore, MD, USA;Carnegie Mellon University, Pittsburgh, PA and University of Hawaii, USA;University of Texas at Austin, Austin, TX, USA;University of British Columbia, Vancouver, Canada;University of British Columbia, Vancouver, Canada;Massachusetts Institute of Technology, Boston, MA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsnurgh, PA, USA;Pennsylvania State University, State College, PA, USA;University of Maryland Baltimore County, Baltimore, MD, USA;University of Virginia, Charlottesville, VA, USA;Fraunhofer Institute and University of Maryland Baltimore County, Baltimore, MD, USA

  • Venue:
  • Proceedings of the FSE/SDP workshop on Future of software engineering research
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Delivering increasingly complex software-reliant systems demands better ways to manage the long-term effects of short-term expedients. The technical debt metaphor is gaining significant traction in the agile development community as a way to understand and communicate such issues. The idea is that developers sometimes accept compromises in a system in one dimension (e.g., modularity) to meet an urgent demand in some other dimension (e.g., a deadline), and that such compromises incur a "debt": on which "interest" has to be paid and which the "principal" should be repaid at some point for the long-term health of the project. We argue that the software engineering research community has an opportunity to study and improve this concept. We can offer software engineers a foundation for managing such trade-offs based on models of their economic impacts. Therefore, we propose managing technical debt as a part of the future research agenda for the software engineering field.