Nach Ward Cunningham entstehen technische Schulden durch Nachlässigkeiten im Code, die aus Zeit- oder Budgetgründen zu einer schnelleren, jedoch fehlerhaften Problemlösung führen. Ein gründlicher, lückenloser Code ist aufwendig und langwierig. Daher entscheiden sich Entwickler unter Umständen für einen unsauberen Code, um Zeit und Aufwand zu sparen. Diese Ersparnis erkaufen sie sich durch Schulden.
Für Cunningham ist dieser ökonomische Aspekt des Programmierens nicht ungewöhnlich oder unnatürlich. Werden technischen Schulden aber nicht durch Refactoring ausgeglichen und der Code nicht regelmäßig optimiert, kommt die Entwicklung durch metaphorische Zinsen ins Stocken oder zum Stillstand.
Martin Fowler, Autor von Refactoring: Enhancing the Design of Present Code, konkretisierte Cunninghams Metapher und unterteilte technische Schulden in vier Typen, die er im Technische-Schulden-Quadranten veranschaulichte:
Â
 | Rücksichtslose Schulden | Umsichtige Schulden |
Bewusste Schulden | Â
 | Â
 |
Versehentliche Schulden | Â
 | Â
 |