Clay’s essay urging a strategy of preparing for emergence rather than designing to control risk. It is perfectly natural for designers to presume that the right route to a mature large system is to enumerate the features of large mature systems and then to start designing, building, and testing them. Clay argues that this behavior is a mistake and I agree.
The 2D B-school plain upon which Clay’s essay rests is plasticity v.s. specificity. As systems mature they become less plastic and more specific. Designers can decide to consciously chart course across this plain.
The nicest turn of phrase in the essay is that “Software systems, however perfect, rarely survive first contact with users unscathed…”. There is a phase change as systems mature, a chilling effect. The designer’s problem is to husband the system’s plasticity, it’s warmth. Spending it during design is a mistake.
The trick is to chart a course during design that increases both specificity and plasticity; so that when you met the users and the cooling begins you can condense structures that are best suited to your joint needs. You want these structures to be ones the users will perceive as legitimate, valuable, comprehensible because they were negotiated jointly. The challenge during design is to prepare to build them, but not to build them.