Modular Decomposition¶
How you divide a system determines how it can evolve; decomposition criteria (by function, by data, by change frequency) shape all subsequent decisions
Tension Addressed¶
Anticipation vs. YAGNI
Recognizable As¶
Module boundaries that align with team boundaries; components that can be understood in isolation; clear criteria for what belongs where; the question "where does this new code go?" having obvious answers
Canonical Sources¶
Parnas, "On the Criteria for Decomposing Systems into Modules" (1972); Conway, "How Do Committees Invent?" (1968)
Transfers To¶
Organizational Design (Conway's Law), Manufacturing (assembly decomposition), Writing (chapter structure), Product Management (feature breakdown)
Sub-concepts: - Functional decomposition: By what the system does (verbs) - Data decomposition: By what data lives together (nouns) - Volatility decomposition: By what changes together (Parnas's criterion)