Managing interdependence over decoupling


The idea of managing (inherent) interdependence in systems is at least as important as the idea of decoupling (independence) that the software development industry is so predominantly obsessed with since the field’s inception.

What’s even worse is that putting most of your efforts into the latter will guarantee reducing complex reality to something that it essentially isn’t.

And that’s when the reality will painfully surprise you, because it doesn’t care what you think it should be. It just is.

Your mental model of it is the one that needs to adjust instead.

Realizing that you just cannot decouple things that are inherently interdependent is often one of those adjustments, and that you’ll be way better off shifting interventions to managing that inherent interdependence over trying to decouple.