Software Engineer’s Blog

Software Engineering weblog

Software Engineering, and town planning analogy

I have seen many literature discussing Software Engineering relating software development to building construction, and a very few comparing it with town planning. Of course, I am no expert on civil engineering or town planning. My observations are from the perspective of observer.

Comparison with building construction is probably easier for any one to relate but I think it is quite a simplification. It helps to convey role of process formalism, team work and automation depending on scope and scale of project. Major point of disconnect, as I find, is in the epilogue. I think only a few, if at all any, building would need to adapt to change as a software must in its lifetime.

Let me clarify here that I am not referring to Software Development Life Cycle but rather time from its initial release for use till it is withdrawn from use, along with all its variants.I have not seen a natural death of a software so far. Either it is killed by its manufacturer by formally declaring End of Life, or it is killed by market and other forces. Well, then there are cases where software is continued to exist with its manufacturer withdrawing support. In general, it amounts to withdrawing ventilator. Is that a natural death or a forced one? I am not sure where to classify it

Coming back to town planning analogy, I find it is closer to software development, than a building construction, in the sense that it starts off in an ambitious plan and in a systematic manner. Over a period of time, town is goes through many changes as it change hands. People who are in charge of town planning, administration and management changes, each of them having their own ideas on how town should be. Market dynamics changes bringing in new possibilities. People living in town changes, and their needs. If you consider a modern town/city, what it was a few decades back and what it is now, you will realize changes and its impact. Town infrastructure had to adapt to accommodate evolving world. This is more visible in developing economies, partly due to ‘ad hoc’ town planning measures and often being at the receiving end of technology changes.

What makes software development further more complex is drastically shrinking timelines and its intangible, invisible nature.


August 3, 2011 Posted by | Software architecture, software engineering | Leave a comment