Every MONOLITH and LEGACY APPLICATION started out, just like today, as "the new technology".
The growth and decay is often slow and unnoticed. The pull to become an unmaintainable app is constant and unrelenting.
Without persistent intervention, today's tech WILL grow into tomorrow's LEGACY.
What steps are you taking TODAY to prevent today's code from becoming tomorrow's LEGACY APP?
One thing that I am doing is creating CI/CD pipelines that enforce test coverage levels. I set a coverage level to prevent laziness in the future. If you add new code, you must also add new tests.
Sure the tests help, but writing code that is testable is the real benefit!
Most people want to make things perfect. Sometimes we evaluate the complexity of an upcoming goal or a problem. So, the fear to not complete it perfectly or "wrong" (Yeah, who are judges? 🤔) stops us even from trying.