Loose Coupling and High Cohesion to think locally
Published on
Just a random thought:
- Loose coupling means, that I can change something in a module without breaking anything in other modules (except I break a contract) - I don’t have to think about other parts of the system
- High Cohesion means, that I find everything I need to make a change in the current module - again I don’t have to think about the other parts of the system.

Useful software is complex. But our brain in limited on how much complexity it handles. Thus, we need an algorithm to structure a system, that we can think only locally. Each module needs to be handle-able with my brain. The complexity needs to stay below my threshold.
The same goes with coding agents by the way - the same principles apply. I guess loose coupling and high cohesion will get a new hype cycle as soon coding agents become more common in real software development.
Related
- Kent Beck infers that coupling is the only thing that drives costs in software (due to the power law)
- Bob Martins Shotgun Surgery comes to mind without loose coupling (and low cohesion?)
Drawings
Complexity will exceed my limits

By putting stuff into modules, I increase the total amount of (accidental) complexity, but the complexities don’t longer add up but stay local, staying under my threshold.
I can even do this recursively, trading even more total complexity for staying under the threshold longer. A tree screams log, which sounds nice.