- Conway, Melvin E.
when designing a system, it is usually split into subsystems and each subsystem is handled to subcommittee
the design of each subcommittee is constrained for subcommittee has a narrowed scope
Every time a delegation is made and somebody’s scope of inquiry is narrowed, the class of design alternatives which can be effectively pursued is also narrowed.
- once the sub-designs are done, they are consolidated into a single design
This point of view has produced the observation that there’s never enough time to do something right, but there’s always enough time to do it over.
each substantial system is structured from smaller subsystems which are interconnected
- this continues until a subsystem is small enough to be understood without subdivision
theory is a system. it is related to the outside world (must explain it or at least not contradict) and consists of subtheories
- e.g., theory explaining an airplane crash
for any node x in the system we can identify a design group of the design organization which designed x; call this X. Therefore, by generalization of this process, for every node of the system we have a rule for finding a corresponding node of the design organization.
- same with branches: if there is a branch between nodes, than two design groups must have negotiated and agreed upon an interface
- if there is no branch between nodes, there is not interface to negotiate, and two design groups have nothing to negotiate, and therefore there is not branch between design groups
- TODO: how this relates to category theory?
As long as manager’s prestige an power are tied to the size of his budget, he will be motivated to expand his organization. […] Once the organization exists, of course, it will be used. Probably the greatest single common factor behind many poorly designed systems now in existence has been the availability of a design organization in need of work.