Software Design: Tidy First?

Share this post

User's avatar
Software Design: Tidy First?
Coupling

Coupling

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

Share this post

User's avatar
Software Design: Tidy First?
Coupling
4
Share

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

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2025 Kent Beck
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share