Strategic Management of Technical Debt
Abstract
Technical debt acknowledges that software development teams sometimes accept compromises in a system in one dimension (for example, modularity) to meet an urgent demand in some other dimension (for example, a deadline), and that such compromises incur a debt. If not properly managed the interest on this debt may continue to accrue, severely hampering system stability and quality and impacting the teams ability to deliver enhancements at a pace that satisfies business needs. Although unmanaged debt can have disastrous results, strategically managed debt can help businesses and organizations take advantage of time-sensitive opportunities, fulfill market needs and acquire stakeholder feedback. Because architecture has such leverage within the overall development life cycle, strategic management of architectural debt is of primary importance. Some aspects of technical debt - but not all technical debt - affect product quality. This tutorial introduces the technical debt metaphor and the techniques for integrating it fully with the software development lifecycle intentionally, with a focus on software architecture.
Document Details
- Document Type
- Technical Report
- Publication Date
- Jan 01, 2018
- Accession Number
- AD1087753
Entities
People
- Ipek Ozkaya
- Philippe Kruchten
Organizations
- Carnegie Mellon University