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!
Top comments (2)
Absolutely agree that the thinking required to write testable code is a huge benefit. And, you don't know how testable it is without the tests.
Enforcement can be a bit tricky -- the key is to get the desired mindset and behavior. Sometimes rules and enforcement can become a monster, and drive behavior that's compliant with the enforcement, without the necessary judgment (or understanding of the right mindset). Maybe an opportunity to start with some lightweight / nonthreatening checks, and view noncompliance as an opportunity to discuss and explore, rather than to reject transactions?
It is important a balance must be achieved for the enforcement. This is why it's up to the teams to decide their own rules.