Small changes yield unexpected problems.
- Cover with tests.
- Refactor and isolate what is changing.
- Depend on a interfaces.
- Legacy Systems
- It is not easy to detect problems before they happen. Mutation Testing and root cause analysis of single points of failures may help.
There are multiple strategies to deal with Legacy and coupled systems. We should deal with this problem before it explodes under our eyes.
Architecture is the tension between coupling and cohesion.