Wednesday, 26 October 2016

Technical Debt Quadrant

I was reading Martin Fowler's article on the Technical Debt Quadrant, first published in 2009 recently. In it he talks about how technical debt as a term is powerful because it uses a metaphor, money, that all businesses understand.

There are, as ever, two dimensions in the quadrant - deliberate v accidental, reckless v prudent. It is easy as a software professional to see how each of the 4 types of debt in the quadrant can come about. The only section of the quadrant that requires a little thought is "accidental prudent" debt. This is explained as debt which arises because of the nature of development. We can't always know what the best design decisions are at the time that we are forced to make them. We can defer decisions until the last responsible moment but we often still will not have all of the information that we later have. Thus, prudent decisions can turn out to be sub-optimal. So at some point in the evolution of a project we can have technical debt that was prudently accumulated (because we made the best design decision given the information available at the time we were forced to make it) but accidental (because we didn't think we were taking on debt at the time).

Now, my reason for this post is the way that Martin's article ends. Essentially he says that this type of debt is difficult to explain to business because the analogy between technical debt and monetary debt breaks down. I thought about this a little while and I put forward the following analogy. In this day and age (and I accept that Martin's article was originally written in 2009, before bail-ins were a thing) it is possible to finance your company in a sensible fashion only for a financial institute to demand a bail in from its depositors (treating them as investors). Maybe I'm labouring the point a bit but would this not be a case where you incur a financial debt, or at least a liability, as a result of a prudent earlier decision?

3 comments: