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.
Ten times the users gives roughly a hundred times the possible connections. The exact formula overstates things — the underlying point about compounding leads does not.
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.
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.
Before the cloud you bought servers for your busiest hour and let them idle the rest of the year. The change was financial rather than technical — and that is why it mattered so much.