Dev Genius

Coding, Tutorials, News, UX, UI and much more related to development

Follow publication

What Is Technical Debt and Why Is It So Painful?

Technical debt is code that keeps on taking

Ben "The Hosk" Hosking
Dev Genius
Published in
7 min readJan 27, 2022

--

Photo by Chavdar Lungov from Pexels

Technical debt is existing code resisting new code

Technical debt is low-quality code, so you can be pretty sure that the developers who created have all left the project, according to the current development team :-)

Like actual debt, technical debt is a cost from the past, which you have to pay for in the future. It’s a hidden bill from the previous developers on the project that has to be paid when any developers interact with the code.

Technical debt is created by software projects choosing speed over quality. To make fast progress and tied to the belief that developing quality code takes longer.

Quality code seems longer because writing unit tests and code reviews feel like it takes longer. It finds bugs/problems in the dev environment, which saves time. The quality versus fast development debate is usually based on feeling, allowing either side to support their belief with opinion rather than facts.

Technical debt is the bogeyman of software development. Like global warming, there isn’t a single thing you can point to and says that’s global warming or that area of code is technical debt.

Development teams are not sure what caused it (once it's in) but know once it’s there it increases complexity and slows down development.

Technical debt has many causes, which makes it difficult to stop it from being created, and even harder to remove after its creation.

Technical debt is difficult to measure in the same way the quality or development team productivity is difficult to measure. Developers know technical debt or quality code when they see it, but it’s hard to define.

What is technical debt?

Let's start with Wikipedia definition

Technical debt (also known as design debt 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…

--

--

Published in Dev Genius

Coding, Tutorials, News, UX, UI and much more related to development

Written by Ben "The Hosk" Hosking

Technology philosopher | Software dev → Solution architect | Avid reader | Life long learner

Responses (2)

Write a response