Two Decades of Technical Debt

Hüseyin Can Ercan
2 min readNov 17, 2023

--

Photo by Narciso Arellano on Unsplash

Tech debt is the accumulation of technical decisions that are expedient in the short term but costly in the long term.

It is a metaphor for real debt, like a loan. When you borrow time from your future self, you have to pay interest in the form of extra work.

When we develop software, we make decisions.

At the beginning, we choose the foundations of our deus ex machina, the perfect solution, the best solution for the business needs.

After several months, we start to get weird requests, and you think “We didn’t think about that case; we can figure out something”.

You start to cut corners; you start to make compromises.

You start to take shortcuts and make choices between trade-offs.

Business and management will stay happy; they will get what they want. But as an engineer, you will start to get concerned about the codebase.

After several years, some components of the projects become obsolete, even unsupported. You will start to face the accumulated tech debt every day.

Salvation

From my perspective, tech debt is the metabolic product of software development. It is a natural result. Every organism has the required mechanisms to handle metabolic products.

Teams are responsible for creating the required mechanisms to handle tech debt. The starting point is awareness. You need to be aware of the tech debt, and you need to be sure your team is aware of the tech debt and the consequences of ignoring it.

You will schedule time to pay the interest, and you will schedule time to pay the principal.

Damnation

I have witnessed several companies reject the idea of tech debt. They continued to build on the same monolith for 20 years. Codebase was like Jurassic Park; I have seen browser-specific code for Netscape Navigator which was the same age as me.

One day, Microsoft decided to stop supporting some old versions of Internet Explorer. Codebase was full of VBScript and ActiveX.

It was the K-T extinction event for the codebase. The team started to build everything from scratch with a 1-year deadline. I was in the middle of the Chicxulub crater.

Final

Everyone pays their debt in some way. Use the reasonable way.

--

--

Hüseyin Can Ercan

Senior software engineer with both enterprise and startup experience.