Leaving aside the question of whether this is a desirable direction for software development to take, I don't think this metaphor works. It reminds me of the first few websites I designed back in the mid-90s ... clients thought their website should look like a building, perhaps have the sort of presence their building lobby had. Heck, when I first explored web development I thought that looking for novel navigation methods based on physical objects was a good idea. The fact is that those ideas ignored usability, and only sounded good because of our lack of experience using the new medium.
What is the point of the city metaphor? Well for one thing, it neatly places the current state of development back in time and so allows us to gaze into the crystal ball and have some idea of where we might be going, based on where cities have gone over that time.
Unfortunately, this idea only works if the factors driving the evolution of the city are similar in nature and effect to the factors driving the evolution of IT, and if the rest of the metaphor actually maps the way he expects it to:
- Cities map to IT shops
- Factories or Buildings map to Applications
- Transportation maps to Communication
- Manufactured Goods map to Structured Data
- Manufactured Assemblies map to Virtual Enterprises
- Urban Infrastructure maps to IT Infrastructure
- City Government maps to IT Governance
What about parks (national and public), public areas, shopping strips, sports facilities, natural geography, etc.?
Pat looks at the internet like the arrival of railroads, but in reality it is more like the arrival of mass produced automobiles, except that upsets his timeline, and creates problems with the metaphor. He says that:
Economic pressures changed our cities. Certainly the best intentions of city planners eased the transitions—and saved some historic monuments—but economic opportunity is what really drove cities to modernize, to share services, and to devise creative means to achieve efficiencies.
What about the mass movement of the labour force from the shrinking labour markets of the rural areas to the growing labout markets of the urban areas? What IT object maps to the people in the city?!
More to the point, a building often remains standing long after its original use has expired. Sometimes it is retained for its historical/heritage value, other times it remains because economics meant that it suited another use, and sometimes it is simply renovated and re-used. Applications are not used this way, and often do not lend themselves to being re-used like this - perhaps they might in the future (I have seen components re-used) - but their basic nature and our relationship to them does not encourage this sort of behaviour. Even if it did, we would not see the sheer volume or diversity of re-use in applications that we do in buildings.
I once worked in an old church that had been renovated into the headquarters for a record label and then was taken over by an ad agency, only to end up being sub-tenanted by a number of different companies. Rooms were re-purposed - my old office had been the agency's multi-media theatre - the upstairs corridor became a meeting area, the back-door became the front-door for one of the tenants, etc.
But then again, perhaps I am griping to no end here. After all Pat's intent seems to be to encourage us to see our current situation as backward and to provide a rallying cry for SOA (Service Oriented Architecture). I admit that there is a lot of justice in the idea that the current state of IT leaves something to be desired ... at least for businesses/users. The fact that heterogeneity always occurs, and usually just when you are happy with your IT architecture, is a well observed side-effect of Murphy's Law, and so the sort of interoperability that SOA is pushing makes a lot of sense to IT people and business users alike.
Nasty Thought: Or perhaps this is just another attempt to reinforce the idea that IT architects have common interest with building architects, their more established and far 'sexier' cousins? Is the real aim to add lustre to the title Software Architect? (or Application Architect, or Solution Architect, or ...)