Tuesday, March 15, 2011

Software Compared to Cities

(I have previously posted earlier versions of this write up elsewhere.)

Why should a system that is working well need to be replaced?

Successful software systems are like cities.  There are cities in Europe that have been continuously inhabited for thousands of years.  London or Rome today would be unrecognizable to Julius Caesar, yet the old cities were never abandoned and replaced - they were just continuously re-developed over the centuries.  Although we like to discuss replacing major software systems because their quirks annoy us, perhaps we should think of these as limitations that must be lived with, just as in these days of the automobile, we still deal with streets in Boston that were engineered for horses and wagons, and we have no intention of razing and rebuilding downtown.

The prospect of "big-bang" conversions of large mission critical software systems gives CIOs ulcers just the way that the prospect of razing and rebuilding entire downtowns gives city fathers ulcers.  I suspect that in the not too distant future, a school of thought may evolve to the effect that large software systems will not only not be replaced, but also that we should not plan to replace them.  Just as we may tear down buildings and build highways, we should not think in terms of replacing large software systems, but in terms of a process of continuous modernization and renewal (with the software equivalent of urban decay if money is not spent on maintenance when it is needed)

The first lesson is that instead of asking what the life expectancy is of a mission critical software system, it is more meaningful to ask what it takes to keep it healthy and contemporary on an ongoing basis.  Cities evolve.  With a few notable exceptions of seats of Government, cities are not greenfield creations.  They start small, and grow, and what they are good at changes over time.

The second lesson for software is probably that mega projects that try to do everything are almost certainly doomed from the start.  The history of attempts to replace VistA variants (e.g., CHCS at the Department of Defense) are also not encouraging.  Rome was not built in a day.

The third lesson from the analogy is that, since large applications evolve, they will always have aspects that are obsolete and awkward.  So, if we love them, we must love them warts and all.

No comments:

Post a Comment