The increase the rate of growth for program
complexity.
We want to minimize dependencies.
Decoupling means minimizing both the quantity
and quality of dependencies.
The most effective way to reduce coupling is to design the
parts so that they are simple and well defined, and bring
together aspects of the system that belong together and
separate aspects that don't.