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)
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.
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.
Stephany Bellomo, Philippe Kruchten, Robert L. Nord, Ipek Ozkaya. "How to Agilely Architect an Agile Architecture," Cutter IT Journal, Feb. 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.
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.
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.
Stephany Bellomo, Robert L. Nord, Ipek Ozkaya, and Mary Popeck. “Got Technical Debt? Surfacing Elusive Technical Debt in Issue Trackers.” In Proceedings of Mining Software Repositories ICSE 2016. To appear.
Robert L. Nord, Raghvinder S. Sangwan, Julien Delange, Peter Feiler, Luke Thomas, and Ipek Ozkaya. “Missed Architectural Dependencies: The Elephant in the Room.” In Proceedings of the 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), IEEE, 2016. To appear.
Paris Avgeriou, Philippe Kruchten, Robert L. Nord, Ipek Ozkaya, and Carolyn B. Seaman. "Reducing Friction in Software Development." IEEE Software 33, 1 (Jan./Feb. 2016): 66-73.
Neil A. Ernst, Stephany Bellomo, Ipek Ozkaya, Robert L. Nord, and Ian Gorton. "Measure It? Manage It? Ignore It? Software Practitioners and Technical Debt." Conference on the Foundations of Software Engineering, Aug. 30-Sep. 4, 2015, ACM.
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 (Sep./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, Aug. 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, Nov. 2010.