Chapter 4, page 31
The boundary test
Before adding an abstraction, ask four questions.
Volatility
Are the two sides likely to change for different reasons? A pricing rule and a JSON decoder are. A view-specific date string and its text label usually are not.
Consequence
What happens if change leaks? Payment, identity, local migrations, and remote commands justify stronger containment than a decorative card.
Multiplicity
Are there real alternative implementations or consumers? “We might replace this someday” is weak. iOS, Android, background work, widgets, and tests may create real multiplicity.
Coordination
Will different teams or release clocks own the sides? An organizational seam can justify a technical contract even when the code is currently simple.
