Don't
Get Too Deep in Technical Debt – The Idea
Agile in a Flash by Jeff Langr and Tim Ottinger (card #13)
Technical debt is technical work deferred as a business decision,
but it quickly becomes a serious business problem.
> Development slows down
> Interest-only payments don’t help much
> Paying early and often is wise
> Bankruptcy is a dire option
> Have a workable plan to pay it off
> Those deep in debt can’t imagine life without it
--
Development slows down. Soon even simple changes take too
long and are accompanied by defects that slow the release of new
features.
Interest-only payments won’t help. Checking in new code
with high quality isn’t enough. Developers must test and clean up
the existing code they touch to avoid entrenching bad code.
Paying early and often is wise. The best way to combat it
is via TDD-supported refactoring (more on this subject in a later
card). Unit tests build confidence for continual, incremental code
cleanup.
Bankruptcy is a dire option. Debt can get so bad that the
only option seems to be to rewrite the entire system. Rewrites tend
to be unexpectedly slow and expensive. They seldom reach functional
parity with the original.
Have a workable plan to pay it off. Rework will require
time and effort from developers, which has an opportunity cost. Plan
payment timing and get buy-in from stakeholders before accruing
technical debt.
Those deep in debt can’t imagine life without it. If you
think software is always full of hacks and unneeded features, you may
be an addict. Beat the mind-set, and eliminate your debt through
collaborative refactoring. More on that in a later card.
Civilization World Wonder quote: "...who drinks the water I
shall give him, says the Lord, will have a spring inside him welling
up for eternal life. Let them bring me to your holy mountain in the
place where you dwell. Across the desert and through the mountain to
the Canyon of the Crescent Moon..."
–Indiana Jones
No comments:
Post a Comment