Author_Institution :
Electr. & Comput. Eng., Univ. of British Columbia, Vancouver, BC, Canada
Abstract :
The technical debt metaphor 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 team\´s 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 - affects product quality. This tutorial introduces the technical debt metaphor, the various types of technical debt, and in particular structural or architectural debt, the techniques for measuring and communicating this technical debt, and its relationship with software quality, both internal and external quality.
Keywords :
financial management; organisational aspects; software architecture; software quality; strategic planning; architectural debt strategic management; business needs; development life cycle; market needs; organizations; product quality; software development teams; software external quality; software internal quality; stakeholder feedback; structural debt; system quality; system stability; technical debt; time-sensitive opportunities; Complexity theory; Games; Measurement; Software; Software engineering; Testing; Tutorials; software architecture; software evolution; technical debt;