Академический Документы
Профессиональный Документы
Культура Документы
Technical Debt:
From Metaphor
to Theory
and Practice
See www.computer.org/software
-multimedia for multimedia
content related to this article.
18 I E E E S o f t w a r e | p u b l is h e d b y t h e I E E E c o m p u t e r s o c ie t y
Mostly invisible
New features
Additional functionality
Technological gap
Visible
Visible
architecture
code
Architectural debt
Structural debt
Defects
Code smells
Test debt
Coding style violations
Documentation debt
Figure 1. The technical debt landscape. On the left, evolution or its challenges; on the right, quality issues, both internal and external.
visible elements such as new functionality to add and defects to fix, and the
invisible elements (or rather, those visible only to software developers). We
can see that on the left, were dealing
primarily with evolution or its challenges, whereas on the right, were
dealing with quality issues, both internal and external. We propose to limit
debt to the invisible elementsthat is,
to the elements in the rectangular box,
including the invisible aspects of evolution and quality.
N o v e m b e r / De c e m b e r 2 0 1 2
| IEEE
S o f t w a r e 19
Visible
Positive
value
Negative
value
Invisible
New features
Added
functionality
Architectural,
structural
features
Defects
Technical
debt
dedication, and craftsmanship will certainly help, but they arent the key determinants in reducing technical debt.
A Unified Theory?
Kevin Sullivan suggested that a simple
model for tackling technical debt represents a software development endeavor
as a sequence of changes, most of them
improvements.9 At a given point in time,
the past set of changes is what defines
the current state of the software. Some
of these past changes are the events that
triggered the current debt: the change or
the way it was implemented isnt quite
right from the current perspective.
The main issue facing the software
development organization is how to
decide about future changes: What
evolution should the software system
undergo, and in which sequence? This
evolution is, in most cases, constrained
by cost: the resources available to apply
to making these changes, most likely
driven by value, as viewed by external
stakeholders.
The decision-making process about
which sequence of changes to apply
could be the main reconciling point
across the whole landscape shown in
Figure 1, from adding new features and
adapting to new technologies to fixing
defects and improving the quality, intrinsic or extrinsic. Because this decision process is about balancing cost
and value, perhaps economic or financial models could become the unifying
concept behind the whole landscape.
A few have already been explored to
some degree:
Net Present Value (NPV) for a
product, from the finance world;
opportunity cost;
real option analysis (ROA), or valuation; and
total cost of ownership (TCO) for
an IT system.
These four models were discussed in
20 I E E E S o f t w a r e | w w w. c o m p u t e r . o r g / s o f t w a r e
In This Issue
This installment of IEEE Software
gives readers different illustrations of
the multifaceted concept of technical
debt. Erin Lim, Nitin Taksante, and
Carolyn Seaman went out into industry to check how software developers
actually conceptualize, perceive, experience, and manage technical debt.
They report their results in A Balancing Act: What Software Practitioners
Have to Say about Technical Debt.
Their analysis describes the large and
complex trade space of stakeholders
short- and long-term concerns and their
strategies to keep them in balance.
Raja Bavani complements this view
from the trenches with interviews
of two agile experts, Johanna Rothman and Lisa Crispin, in Distributed
Acknowledgments
References
1. W. Cunningham, The WyCash Portfolio
Management System, Proc. OOPSLA, ACM,
1992; http://c2.com/doc/oopsla92.html.
2. S. McConnell, Technical Debt, blog, 2007;
http://blogs.construx.com/blogs/stevemcc/
archive/2007/11/01/technical-debt-2.aspx.
3. M. Fowler, Technical Debt, blog, 2009; http://
martinfowler.com/bliki/TechnicalDebt.html.
4. I. Gat, ed., Special Issue on Technical Debt,
Cutter IT J., vol. 23, no. 10, 2010.
N o v e m b e r / De c e m b e r 2 0 1 2
| IEEE
S o f t w a r e 21