City Planning as a Metaphor for Software Development


Nowadays when we talk about computer systems word architecture is used a lot. But interestingly software architecture has only come about in the late seventies and really become mainstream only in the nineties. software_architecture

This coincides with the desire of many software professionals in that time to introduce rigor into software development and bring the discipline on par with machine engineering, civil engineering and other fields of engineering based on hard science.

In the past ten years we finally accepted the fact that software development is a messy thing that is mostly empirical in nature and it is really not amenable to planning. But the term software architecture has stayed with us giving the false impression of complete control and predictability.

Only if you start developing software from scratch you have the privilege of total control. But in all other cases, you must build on top of existing system, considering legacy systems, use technologies of different origins and generations, and integrating different vendors and programming styles. This is very similar to limitations that city planners face who cannot just raze the town, but must take into considerations existing buildings, land use, citizens, and lots of politics, to successfully direct development of a city. Therefore city planning is much better metaphor for software development than architecture, as suggested by Rachel Laycock in her talk at Agile Slovenia 2013.

Enhanced by Zemanta