Technical Debt #3: Learning to handle it

by Andrea Maioli on 01/29/2013

In previous posts we’ve seen that developing software generates Technical Debt, and the amount of debt is proportional to the complexity of the software. Unfortunately, we’ve also seen that with traditional development techniques, the accumulation of debt is inevitable.

This is precisely why learning to manage Technical Debt is so crucial. A Gartner study confirms that the Technical Debt of leading American companies has the potential to reach a value of 1 trillion dollars by 2015.

So how can we avoid getting crushed by the size of this debt? This is where the decision to describe this concept as “Technical Debt” is at its most effective. First and foremost, we need to be aware that it exists. The worst thing that can happen after getting into debt is to forget about it.

This makes it incredibly important to conduct an immediate appraisal of the amount of work it will take to cover both the debt and the interest it accrues, and then to allocate quickly the resources needed to repay it as soon as possible.

Indeed, like any other type of debt, Technical Debt generates interest. The longer you delay payments, the more work it will take to repay it, because of the entropy that the incomplete work is generating. That’s why it’s important not to delay payments for too long.

If we keep putting it off, we may no longer be able to allocate payment of the entire debt, and this is where the software project falls into a strategically risky situation that is tough to get out of.

Unfortunately, there are no shortcuts. We need a new approach that allows us to reduce, or even better, eliminate, technical debt at its source. This where the Relational Programming in Instant Developer comes into play. But we’ll talk about this in the next post.

In the meantime, try to answer this question: at what point will I reach the threshold beyond which I’d have a hard time recovering from my Technical Debt?

In this series:

Leave a Comment

Previous post:

Next post: