Technical Debt: Useless Numbers, Valuable Information
The world is living rough times nowadays due to the global recession. Hundreds and hundreds of economists did not see it coming at first, but now they try to figure out how to get out of this mess. Digging into this awkward, non-technical world I have found surprisingly that many people mix the concepts of price, value and cost. Then I have realized that we express the technical debt as a bunch of dollars we have to pay down. Does this amount of money represent consistent concepts of price or value? In mi humble opinion, it does not.
I don’t want to talk about economics nor labour theory of value here. My thesis is simple: the way we measure technical debt does not depict correctly any of the concepts linked to money (money, value, cost).
Why? To begin with, I do not trust absolute numbers based upon some subjective estimations (I am a technician, my fault). If my technical debt is shown as a huge number of “technical debt dollars” my mind is unable to understand properly the meaning of such quantity. Why debt is exactly 1,002,704.34 dollars? 34 cents of technical misuse? Really?
Secondly, as the recent facebook stock market launch showed us, the estimated value of something might not be what others think it is. The markets may have their opinion and we may have a completely different point of view. Maybe my application owes 1 million dollars but my company earned 10 million because our time to market was incredibly fast. Yes, we stacked a lot of debt in exchange, but we made a significant, tangible profit. I found this a little bit paradoxical: Technical debt is estimation whereas profit is real. So, who cares about abstract money?
I do think that things in computer programming are always done for a good reason (a ‘greater good’ as a whole), even bad things. Nobody should do anything badly without purpose (furthermore, without a good purpose). Any form of technical debt has a reason to exist, and it should have powerful reasons to exist. Otherwise debt itself would be the last of our problems.
So, why do we have to attach the concept of technical debt to those green papers we call money? The reason why we committed the ‘crime’ is also worth it! Should it be depicted as money too?
My point is: plain numbers regarding technical debt are useless if we do not know the impact (positive or negative) that such debt caused. I know such impact can be almost impossible to calculate (how can we possibly know if the benefits of our application were originated applying bad practices in software design?). As a result I think the unit of measurement of technical debt should not be a currency (their value cannot be measured with non-existing money) and IT professionals should think of a better unit. Maybe we could consider the Technical Debt as a burden that slows down our productivity. But how do we measure productivity? That’s another story…
Meet the author Eduardo Aguado
Computer engineer in search of excellence in software architecture. I like languages (I like to think I am fluent at Spanish and English,but also interested in Dutch and Chinese), computers and technology and anything you may associate to a geek person. But most of all I like learning, I will never stop doing it ;) I feel comfortable working with J2EE and writing formal language processors. If you want a parser guy,just contact me!