Chapter 3

Coupling and Complexity: Interactions

Complexity rises, not from parts’ number or size,

It’s interactions among them, where troubles can rise.

While linear ones are simple and clear,

With complex interactions, failures loom near.

The preceding chapter sought to define what complexity is. It started by defining complexity as the cognitive load one experiences when working with a system, and elaborated using the Cynefin framework. You learned that in complex situations, the outcome of an action can only be identified in retrospect. It is not immediately apparent, and you cannot consult an expert; instead, you must conduct an experiment and observe the resultant behavior. Because such uncertainty is not a desirable property for a software ...

Get Balancing Coupling in Software Design: Universal Design Principles for Architecting Modular Software Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.