On technical debt

Maxim Zaks
2 min readJan 21, 2020

--

Cambridge Dictionary defines debt as:

something, especially money, that is owed to someone else, or the state of owing something

So does technical debt mean, we owe technology to someone else?

That’s an intriguing thought, specially as most of the software we write runs on software and hardware built and owed by someone else. But I think this is not how we mean it.

Wikipedia defines technical debt as:

Technical debt (also known as design debt[1] or code debt, but can be also related to other technical endeavors) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.

This I can totally relate to. Additional rework. IMHO That is the key point. Why do we get into debt, financial or otherwise. We get into the debt, because we don’t have enough resources and we don’t want, or can’t spend time to accumulate those resources.

To buy a house I need 500K Euro. I have only 100K and saving another 400K will take me approximately 20 more years. I don’t want to wait that long, so I take a loan at a bank. And here we go, I have a financial debt.

In software development it is mostly about time. In order to produce a feature XYZ I think I should spend N amount of time, in order to learn and understand the context and based on this know how, produce a “better” solution. But we only have M amount of time in our budget. So we implement the feature XYZ in M amount of time, given that we will have to spend additional O amount of time to rework our solution at some later point.

Wikipedia article on technical debt also states:

As with monetary debt,[3] if technical debt is not repaid, it can accumulate ‘interest’, making it harder to implement changes.

This I completely disagree with. I believe technical debt does not accumulate interest as monetary debt does. Working software is working and you don’t have to rework it more after certain amount of time. But, when the software is constantly worked upon, with the same insufficient time constraints, than we take more debt upon debt and this is rather a Ponzi scheme:

A Ponzi scheme (/ˈpɒnzi/, Italian: [ˈpontsi]; also a Ponzi game)[1] is a form of fraud that lures investors and pays profits to earlier investors with funds from more recent investors.

--

--

Maxim Zaks

Tells computers how to waste electricity. Hopefully in efficient, or at least useful way.