Collective Wisdom from the Experts 13
They do not need to pay debt off immediately, but it is good to gauge the extent
of the needed repair while the shortcuts are still fresh in the developers’ minds.
Make sure there are specific code problems identified to be rewritten, not just
arbitrary buckets of time requested. This is not an opportunity to goof off, it is
a disciplined approach to keeping your code base clean.
Additionally, an increasing array of software analysis tools such as code cover-
age, coupling analysis, and detection of style deviations can automatically help
identify places where debt has been incurred, perhaps without your knowl-
edge. Enter these items into your issue tracking system and schedule them
against future iterations. By balancing the workload to include new business
functionality and paying off loans, it is possible to keep your technical debt
from spiraling out of control while still satisfying customer feature requests.
Software gets unwieldy for many reasons. But it usually comes down to hacks,
insufficient documentation, inappropriate dependencies, shortcuts, and devi-
ations from the intended design. When developers throw up their hands and
say they need to start over on a system, chances are that unpaid technical debt
has become overwhelming. They feel the need to declare the software equiva-
lent of bankruptcy.
By identifying this debt along the way and dealing with it quickly, you can
make more frequent “minimum payments” to prevent ensuing chaos. This
metaphor is a surprisingly useful way to explain to business stakeholders how
software can become unmanageable over time and why they should invest in
keeping code clean.