Thanks for the resources. Good analogy with software engineering. I would say that deciding the layout and large infrastructure would be analogous to selecting the technology stack. Allowing the buildings and neighborhoods to evolve would be the learn/evolve as you go, agile approach.