A design has to start with some initial conditions, and then adapt to the boundary conditions – the conditions it encounters as it evolves. This can only happen through recursion, which is how our design achieves adaptive evolution and a much better “fit” with the problem. We might have a very good intuition of what the design has to embody – Steve Jobs, for instance, was famous for his intuition of the final qualities a design needed – but then large teams of people had to refine that initial vision and bring iterations to him to evaluate. He was setting the initial conditions (what he wanted the devices to be able to do for people), as they were adapting to the boundary conditions.

Michael Mehaffy and Nikos Salingaros in Unified Architectural Theory: Form, Language, Complexity. A companion to Christopher Alexander’s Nature of Order, Book 1