Skip to content

Beck — Tidy First? / Empirical Software Design

Beck is the source of two ideas this project already runs on. First, TDD — the red/green/refactor cycle the engineering agents are briefed to follow. Second, Tidy First? reframes design as the management of coupling and cohesion (Constantine & Yourdon’s “Newton’s Laws” for software): a tidying is a tiny, behavior-preserving structural change you make before a feature so the feature is cheap to add. Its thesis — “software design is an exercise in human relationships,” optimize for the next reader, change in small reversible steps — is the empirical, incremental counterweight to big-design-up-front.

  • TDD is already the house process; this is its provenance. The repo briefs every engineering agent on test-driven-development + git-flow, and the runtime ships 120 headless ctests precisely so behavior is pinned before refactor. That discipline is Beck’s cycle — worth citing by name when the TDD brief gets questioned.
  • “Tidy first” is the right shape for the pending re-flow debt. The tracked types.h legacy-80×25 deviation and the “legacy display.c passenger pending a re-flow task” (kn-86 CLAUDE.md) are textbook tidyings-in-waiting: small structural cleanups that should land before the next renderer feature, not bundled into it. Beck’s framing (separate the tidying PR from the behavior PR) maps straight onto our git-flow.
  • Coupling/cohesion is the parent vocabulary. Beck works at the coupling/cohesion level; Weirich’s connascence refines coupling into a measurable spectrum. Pair them: Beck for when/whether to tidy, connascence for which coupling to weaken.
  • Reinforces the working-style preferences already in play — small reversible changes, one clear path, reuse over rewrite.
  • Cross-link Weirich — Connascence and Hickey — Simple Made Easy (the three together are the project’s “how we reason about change” canon).