What is Technical Debt?

Diego Perez
2 min readJul 27, 2022

--

Technical debt is the result of prioritizing speed of development over perfection, it is the accumulation of all the decisions made by the development team that generates deficiencies, negligence, and errors in the code, both deliberate and unintentional.

A digital product with excessive technical debt causes many instability problems in the application, which will constantly require the support and attention of the development team. At the same time, it prevents adding new features or scaling the software due to the complexity of inefficient code. The downside of making the necessary corrections is that it slows down productivity and generates additional costs for the company.

A simple way to understand the term applied to software is to imagine that a bank offers you a loan to buy a new car, you know that you could save some time to buy it, but with that loan, you can have it in your house today, this generates a debt that you will have to pay to have full ownership of the vehicle. However that debt has additional interest on top of the loan, in the end, you have to pay more for the same vehicle.

The same happens with our code when we want to accelerate the development process to deliver a product as fast as possible, then we will have to correct all the deficiencies which will delay the growth of the project while you pay the debt.

Technical Debt Quadrants

The term technical debt was first suggested in 1992 by Ward Cunningham in the Agile Manifesto. Then Martin Fowler, based on Cunningham’s metaphor, created a technical debt quadrant that allows to represent it in 4 types, which can be summarized as follows:

Technical Debt Quadrants

The quadrant suggests that debt can be generated deliberately or accidentally. In addition, there are reckless debt and prudent debt, which refers to the way in which the team decides to assume technical debt.

In any development, it is highly unlikely that failures can be completely avoided, as debt can be generated due to obsolete software, lack of updates, or lack of code refactoring. But commonly the technical debt is due to conscious or unintentional decisions to code inefficiently or a budget issue.

In tomorrow’s article, we will delve deeper into the origins and causes of technical debt.

--

--

Diego Perez

Technology content creator, Electronics Engineer and Python developer