Thursday, October 17, 2013

Agile in a Flash 13

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