Jan 21, 2014

What is technical debt?

I was just reading a story about a development project, and the CTO mentioned "technical debt".  What is that, and how is that monitored and managed?

Technical debt

"Technical debt (also known as design debt[citation needed] or code debt) is a neologistic metaphor referring to the eventual consequences of poor software architecture and software development within a codebase. The debt can be thought of as work that needs to be done before a particular job can be considered complete. If the debt is not repaid, then it will keep on accumulating interest, making it hard to implement changes later on. Unaddressed technical debt increases software entropy.


 It’s a somewhat clever way of saying cutting corners for a short term savings will cost you more in the long run. Basically, if a project has to be finished very quickly with less testing, the code will be more likely to have errors to be fixed later. Sometimes, this is the lesser of two evils if one is facing a hard deadline. However, a great example of this in practice (to some degree, anyway) is the federal government’s healthcare website, and while it met the deadline, the result was a broken site that had to be fixed at considerable cost in time, money and credibility. 


Here is an interesting article making the point that sometimes technical debt may be ok. 

Answer this