Technical debt is the financial metaphor for shortcuts taken in software. Every time a team ships fast by postponing the cleanup, it takes out a loan. The interest is paid on every subsequent change: what should take a day takes three, because you first have to understand, work around or repair what was rushed.
What it looks like
A PHP or framework version not upgraded in five years and no longer supported. Functions copy-pasted in six places. No automated tests, so every fix breaks something else. A database whose structure has been patched request after request. No documentation, with a single developer who knows the system.
Why it builds up
Rarely through incompetence. More often because deadlines demanded it, because the software outgrew what it was designed for, or because maintenance was never budgeted. Software without a maintenance budget accumulates debt as surely as a building without upkeep.
How to manage it
First measure it: a code audit quantifies end-of-life versions, duplication and test coverage. Then pay it back in instalments, inside ongoing projects, rather than in one big cleanup that never comes. When the debt exceeds the system's value, a rewrite becomes the cheaper option.