"Technical debt" is the most comforting lie in software engineering.
It's a financial metaphor borrowed to make a bad decision sound like a strategic one. Real debt shows up on a statement, accrues a published interest rate, and has someone whose entire job is calling you when you miss a payment. Technical debt has none of that. Nobody sends a reminder. Nothing compounds on a visible schedule. The // TODO: refactor this comment doesn't get more urgent with age - it just gets older, sitting next to code nobody remembers writing for a reason nobody remembers having.
That's not a minor flaw in the metaphor. It's the entire mechanism by which the debt never gets paid.
Real debt has a lender. This doesn't.
When you take on real debt, someone else has skin in the outcome. A bank wants their money back, so they charge interest, set a due date, and report you to a credit bureau if you ignore them. That external pressure is what makes debt a functioning concept instead of just "spending money you don't have."







