In every codebase, there are the dark corners and alleys you fear. Code that’s impossibly brittle; code that bites back with regression bugs; code that when you attempt to follow, will drive you mad.

Ward Cunningham created a beautiful metaphor for the hard-to-change, error-prone parts of code when he likened it to financial debt. Technical debt prevents you from moving forward, from profiting, from staying “in the black.” As in the real world, there’s cheap debt, debt with an interest lower than you can make in a low-risk financial instrument. Then there’s the expensive stuff, the high-interest credit card fees that pile on even more debt.

Technical debt is a drag

In the December 2009 and January 2010 issues of MSDN Magazine David Laribee wrote two very good columns on the effects or, and strategies to pay back, Technical Debt.

His insights are spot on and I think we can all learn something from his two articles: