Home : Software Terms : Technical Debt Definition

Technical Debt

Technical debt is a burden software developers face from old source code and architectural decisions. It can range from poorly-written functions to frameworks that are no longer supported. In some cases, technical debt can be handled by rewriting code, while in others, developers may need to rewrite entire programs.

Avoiding Technical Debt

The best way to manage technical debt is to avoid accumulating it in the first place. This begins with architecting a program with a long-term plan. A wise software engineer will design an application for the future, not just the current state of software and hardware. Choosing "future-proof" programming languages and reliable frameworks are two important decisions in the architectural process.

It is also necessary to follow good coding practices to avoid technical debt. For example, if the same logic is repeated multiple times within a program, it should be consolidated into a single class or function. Otherwise, it will be more difficult to locate and update each instance in the future, especially if new developers are working on the project. Commenting code is also essential for reviewing and updating code in the future.

Managing Technical Debt

The two main ways to manage technical debt are to rewrite sections of code or start from scratch. The best route depends on the size of the project and the amount of technical debt.

1. Rewriting code

Rewriting or "refactoring" code is the most common way to handle technical debt. For example, a senior developer may review code written by a junior developer and find ways to optimize performance. It may also be necessary to update deprecated functions so that the code can run on a newer platform. In some cases, large portions of code may need to be rewritten to work with a new API. These types of updates are common in the programming world and are one of the reasons why developers release new versions.

2. Starting from scratch

If the amount of technical debt is large enough, it may require more time to update the code than to write new a new program from scratch. In some cases, it may be necessary to re-code an application in a new programming language that is compatible with modern software compilers. Rebuilding an app from scratch is a significant investment, but it may provide additional benefits. For example, a new application can take advantage of the latest hardware technologies and modern user interface elements.

Updated: June 20, 2020

Cite this definition:

https://techterms.com/definition/technical_debt

TechTerms - The Tech Terms Computer Dictionary

This page contains a technical definition of Technical Debt. It explains in computing terminology what Technical Debt means and is one of many software terms in the TechTerms dictionary.

All definitions on the TechTerms website are written to be technically accurate but also easy to understand. If you find this Technical Debt definition to be helpful, you can reference it using the citation links above. If you think a term should be updated or added to the TechTerms dictionary, please email TechTerms!

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe at any time.
Questions? Please contact us.