Modularity and Integration: Fit Against Flexibility
Control every part and tune the fit, or accept a standard interface and gain interchangeability. Which one wins turns on a single question — and the answer changes as a market matures.
Control every part and tune the fit, or accept a standard interface and gain interchangeability. Which one wins turns on a single question — and the answer changes as a market matures.
An org chart looks like a diagram of authority. It works as a map of which conversations are cheap — and that is what ends up shaping the product.
You can recognise thousands of faces and actively maintain far fewer relationships. The famous figure of 150 is contested — the underlying constraint is not.
The obvious response to a slipping deadline is more people. Output falls first, because the only people who can train them are the ones already behind — and coordination grows with the square of the team.
Most engineering time goes on code that already exists. Once you accept that, the practices that look like fussiness turn out to be straightforward economics.
Every complex system that works turns out to have grown from a simple one that worked. Designing the finished version from scratch doesn't just take longer — it has a startlingly poor success rate.
You drive through a ten-minute jam and past no accident. The jam was real, it moved backwards down the road, and no car was it. A great deal of the world is built this way.
Assign four teams to build a compiler and you get a four-pass compiler. The seams in any system fall exactly where the seams between its builders already were — and rewrites that ignore this get undone.
Cunningham's metaphor was never about bad code. It was about a rational trade — ship now, pay interest later — and the interest is levied on every future change you make.