t
trevane
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?

jimlynch
01/24/2014
Technical debt
http://en.wikipedia.org/wiki/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.

As a change is started on a codebase, there is often the need to make other coordinated changes at the same time in other parts of the codebase or documentation. The other required, but uncompleted changes, are considered debt that must be paid at some point in the future. Just like financial debt, these uncompleted changes incur interest on top of interest, making it cumbersome to build a project. Although the term is used in software development primarily, it can also be applied to other professions."
S
StillADotcommer
01/21/2014

 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