CERT-SEI

Architectural Technical Debt Library

Getting Started

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 as a way to understand and communicate these issues. Often when a particular symptom in a system is described as technical debt, it's not just the code quality that is bad, but it's also accumulating problems that happen in terms of architectural changes that have occurred throughout the system's development. We see increasing industry interest and the emergence of related practices in an effort to handle maintainability, degrading quality, and strategic time-to market tradeoffs that the technical debt metaphor reifies.

Ipek Ozkaya. SEI Agile Research Forum 5.22.12. "Strategic Management of Architectural Technical Debt" (webinar)

Ipek Ozkaya. "An Architecture-Focused Measurement Framework for Managing Technical Debt" (podcast)

Interviews with key practitioners on technical debt: Jeromy Carriere, Michael Feathers, Steve McConnell, and Carolyn Seaman.

Philippe Kruchten, Robert L. Nord, Ipek Ozkaya. "Technical Debt: From Metaphor to Theory and Practice." IEEE Software, Nov/Dec, 2012.

The educational "Hard Choices Board Game" communicates the concepts of uncertainty, risk, options, and technical debt.

Integrating Technical Debt Management with Software Development Practice

Industry and government stakeholders continue to demand increasingly rapid innovation and the ability to adjust products and systems to emerging needs. Amidst all the enthusiasm towards meeting these needs, the critical role of the underlying architecture is often overlooked. These articles focus on the architecture principles and practices that support rapid delivery while managing technical debt.

Publications

Stephany Bellomo, Philippe Kruchten, Robert L. Nord, Ipek Ozkaya. "How to Agilely Architect an Agile Architecture," Cutter IT Journal, February 2014.

Ipek Ozkaya, Michael Gagliardi and Robert L. Nord. "Architecting for Large Scale Agile Software Development: A Risk-Driven Approach," Crosstalk, May/June, 2013.

Felix Bachmann, Robert L. Nord, and Ipek Ozkaya. "Architectural Tactics to Support Rapid and Agile Stability," Crosstalk, May/June, 2012.

Nanette Brown, Robert Nord, Ipek Ozkaya. "Enabling Agility Through Architecture," Crosstalk, Nov/Dec, 2010.

SATURN Blog

Highlight: "Links: Ipek Ozkaya on Technical Debt, Agile, and Architecture"
Practices intended to speed up the delivery of value to users often result in high rework costs that ultimately offset the benefits of faster delivery, especially when good engineering practices are forgotten along the way.

SATURN blog posts on the topic of technical debt

http://saturnnetwork.wordpress.com/tag/technical-debt

Technical Debt Research Agenda

The SEI focuses on managing debt as an agile software architecture strategy. Specifically, SEI researchers are focusing on identifying any implications to the cost of architectural changes. Architectural technical debt is a design or construction approach that's expedient in the short term, but that creates a technical context in which the same work requires architectural rework and costs more to do later than it would cost to do now (including increased cost over time). A unifying perspective is emerging of technical debt as the invisible results of past decisions about software that affect its future. The effect can be negative in the form of poorly managed risks, but if properly managed can be seen in a positive light to add value in the form of deferred investment opportunities. A gap in the existing approaches and tools is a way to extract architectural metrics that can assist understanding the accumulating rework and degrading quality.

Publications

Robert L. Nord, Ipek Ozkaya, Raghvinder S. Sangwan, Ronald J. Koontz. "Architecture Dependency Analysis to Understand Rework Costs for Safety-Critical Systems." ICSE, Hyderabad, India, May-June 2014.

Robert L. Nord, Ipek Ozkaya, Raghvinder S. Sangwan. "Making Architecture Visible to Improve Flow Management in Lean Software Development." IEEE Software Special Issue on Lean Software Development (Sept/Oct 2012).

Robert L. Nord, Ipek Ozkaya, Philippe Kruchten, Marco Gonzalez. "In Search of a Metric for Managing Architectural Debt." Joint 10th Working IEEE/IFIP Conference on Software Architecture (WICSA) and 6th European Conference on Software Architecture (ECSA), Helsinki, Finland, August 2012.

Robert L. Nord, Ipek Ozkaya, Raghvinder Sangwan, Nanette Brown."Communicating the Benefits of Architecting within Agile Development: Quantifying the Value of Architecting within Agile Software Development via Technical Debt Analysis." Bass et al. Results of SEI Line-Funded Exploratory New Starts Projects (CMU/SEI-2012-TR-004), 2012.

Nanette Brown, Robert Nord, Ipek Ozkaya, Manuel Pais. "Analysis and Management of Architectural Dependencies in Iterative Release Planning." Working IEEE/IFIP Conference on Software Architecture (WICSA), Boulder, CO, June 2011.

Nanette Brown, Yanfang Cai, Yuepo Guo, Rick Kazman, Miryung Kim, Phillippe Kruchten, Erin Lim, Alan McCormack, Robert Nord, Ipek Ozkaya, Raghvinder Sangwan, Carolyn Seaman, Kevin Sullivan, Nico Zazworka. "Managing Technical Debt in Software-Reliant Systems." FSE/SDP Workshop on the Future of Software Engineering Research (FoSER), Santa Fe, NM, November, 2010.

SEI Blog

Highlight:"Developing an Architecture-Focused Measurement Framework for Management of Technical Debt"

SEI blog posts on the topic of technical debt

http://blog.sei.cmu.edu/archives.cfm/category/technical-debt