Change Coupling: Why One-Line Fixes Touch Ten Files
3 days ago
- Change Coupling is a sense-making tool for decision makers to understand system structure, not a quality metric to optimize.
- Poor Change Coupling increases cognitive load and slows development by requiring changes across multiple unrelated files.
- There are multiple types of coupling (physical, logical, temporal, data, control, change), and not all coupling is bad.
- Change Coupling is detected through change history, not static code analysis, revealing hidden dependencies.
- The Change Coupling Matrix helps analyze code: consolidate code that changes together but lives apart; split code that lives together but doesn't change together.
- Common mistakes include relying on silver bullets like event-driven architectures or microservices without addressing underlying change coupling.
- Change Coupling imposes hidden costs like cognitive load, coordination overhead, and can petrify business-critical code.
- Actionable steps: identify opportunities, coordinate and plan changes, and commit to regular reviews to manage change coupling over time.