Over the last year, I’ve been struggling with the term technical debt.
The theory behind technical debt is that there are choices we make that cost money later. And that’s motherhood and apple pie.
The problem with that phrasing is that there is an implicit assumption that technical debt is a bad thing because all debt is bad.
And that is just profoundly a wrong conclusion.
Debt is how you get leverage in the business, and it’s how you get leverage in time in engineering. And engineering is a tradeoff between time and resources.
More generally, because of the negative connotation of debt, the theory of technical debt says that:
Engineering tradeoffs aligned with business priorities are bad if hurt they architecture
And that is the wrong answer. Because if the business priorities result in growth and success, then this was the right tradeoff between time and technical correctness.
Engineers can use leverage to go faster, and like businessmen we can overdo it. And when we do — well there are consequences.