Musings on Software, Simplicity and Craft
Something that I have heard over and over again recently, from technical and non-technical people involved in Software is that "LLMs will get rid of Tech Debt". However, I think that there is a very long way to go before this is true and it may not even be possible or desirable and it is a potentially dangerous mindset to have, since it very much misunderstands what Tech Debt is.
The danger isn't simply that this belief is wrong. Misunderstanding tech debt can prove catastrophic for any company, regardless of whether they're using LLMs. Believing you can eliminate tech debt entirely is like burying your head in the sand. Tech debt exists and is inevitable. Success isn't about elimination, but about understanding what tech debt actually is and making informed decisions about when to invest time paying it down.
LLMs can accelerate the loop of building, learning, and adapting. This makes understanding tech debt more critical than ever. Move faster with the right understanding, and you stay ahead of changing requirements. Move faster with the wrong understanding, and you just accumulate debt at AI speed.
If you write the ugliest code ever, but it does the job and never ever needs to change... is it Tech Debt?
Over the years, Developers have been using the term Tech Debt to just mean "ugly code" or "code that I didn't write", and non-technical managers, have come to just hate the term and just seen it as a blocker/nuisance/complaint from developers.
When Ward Cunninngham coined the term "Tech Debt" in 1992 he wrote
"Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a refactor... The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt."
And this may sound that like War Cunningham is defining Tech Debt as "ugly/bad code", however further along in that
What if when requirements/the environment changes you could, instantly just rewrite it all? This would be the only "solution" to eliminating Tech Debt. However, this would likely introduce other issues. How much of the product changes?
Even if you somehow could rewrite the whole codebase instantly and with confidence, this will only work for small and isolated projects.
Tech Debt is misunderstood. It is not possible to live without some level of Tech Debt because we cannot always accurately predict how our environment will change. AI/LLMs may be very helpful by:
However, there is always going to be a level of Tech Debt that needs to be accepted, there is no perfect way to slice the code, even with the best practices, code will need to be revisited as the environment and our assumptions change.
Published: 2026-01-24