We call it "tech debt" to make it sound sophisticated. It sounds like a clean financial instrument. We say we'll take a loan on code quality now to ship faster, and we'll pay it back later.
But in real finance, you have a repayment schedule. In software, the person who takes the loan (the senior architect or the product manager) gets a bonus for shipping on time. The person who pays it back is the junior engineer hired three years later who has to drown in the spaghetti code.
This isn't debt. It's intergenerational theft.
The Interest Rate of Bad Code
Every line of quick and dirty code is a liability. It builds up interest in the form of friction.
- Principal: The actual refactoring work needed to fix the mess.
- Interest: The extra twenty percent of time every future feature takes because the codebase is brittle, undocumented, and terrifying.
Eventually, your interest payments eat up all your engineering capacity. You enter technical bankruptcy. Y'all can't ship new features anymore. You can only patch bugs. You're dead in the water.
The $800 Million Audit: Southwest Airlines
In December 2022, the bill came due for Southwest Airlines. A winter storm hit the US. Every airline struggled, but Southwest collapsed completely. They cancelled over sixteen thousand flights. Families got stranded. The stock crashed. The total cost was estimated at eight hundred million dollars.
The root cause wasn't the weather. It was "SkySolver," a legacy crew-scheduling system from the 1990s. When automated matching failed, it required manual phone calls. For decades, management treated IT as a cost center. They cut the maintenance budget to pay dividends and buy back stock. They looted the future to pay for the present. But nature eventually audited their books.
Refactoring is Stewardship
How do we stop the theft? We have to change the accounting. CFOs hate maintenance budgets because they count as operating expenses. They prefer assets. We need to reframe refactoring. It's not cleaning up. It's investing in velocity liquidity. Writing clean code isn't an aesthetic choice. It's an ethical act. Writing maintainable code means you respect the time and sanity of the human being who will sit in your chair next. Writing garbage means you think your deadline is more important than their life. Stop stealing from the future.