Software Design: Tidy First?

Coupling

Kent Beck's avatar
Kent Beck
Oct 18, 2022
∙ Paid

To prepare to write their classic text Structured Design, Edward Yourdon & Larry Constantine examined programs to find out what made them so expensive. They noticed that the expensive programs all had one property in common--changing one element required changing other elements. The cheap programs tended to require localized changes.

They dubbed this change infection property coupling. Two elements are coupled with respect to a particular change if changing one element necessitates changing the other element.

For example, a calling function is coupled to a called function with respect to changes to the name of the called function.

caller()
    called()

called() // changing this name requires changing the call site(s) too
    ... // changing the formatting of the body requires no changes to call sites

The second comment above emphasizes an important nuance of coupling

User's avatar

Continue reading this post for free, courtesy of Kent Beck.

Or purchase a paid subscription.
© 2026 Kent Beck · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture