Without significant change of process and/or methodology, your new system will become your next legacy mess.
(Photo: Stacy via Unsplash)
Without significant change of process and/or methodology, your new system will become your next legacy mess.
(Photo: Stacy via Unsplash)
The most common issues I encounter in legacy software systems are:
- Little or no automated testing
- Everything depends on everything else (high coupling)
- Functionality is spread out across the entire code base (low cohesion)
- No clear separation of internal and external concerns (such as HTTP authentication cookies in business logic functions, database connection handling in REST API controllers, etc.)
The software practices and development methodology that led you there will likely bring you into a similar mess if you do not change them.
Think about how you want your next system to look in ten years, identify the practices that will get you there—and then start implementing them!