I’m working on a greenfield next.js application right now and while talking through architecture with one of my coworkers, he made a joke that stuck with me:
You know you’re just making technical debt for 10 years from now, right? You’re making the new redacted internal application.
While this doesn’t meet the “traditional” definition of technical debt, I get what he meant. Given time, all software- even well tested, well written, well architected, and well liked software- becomes legacy software, which feels like technical debt.
Really, all software?
I think there should be a few metaphorical asterisks around this idea. If you’re software has the advantage of being rigorously maintained and kept up to date, then it’s likely you can avoid the “legacy” label.