Posts Tagged 'guiding principles'

Designing for reasonable system “life events”

People experience typical life events like graduations, changing jobs, marriage, divorce, and so on. These “life events” are not strictly predictable from the outside, but are not really unexpected, either. IT systems can experience analogous life events, too, and the smart architect would take this into account during both system design and as a general design principle across the enterprise.
This occurred to me recently when a past colleague and I were discussing something they were working on. It seems his company is looking to migrate some existing systems to a different platform, and estimates for the development labor are, well, shocking. Much of this is apportioned to things like manually reviewing and re-writing the thousands of script files used to maintain the application’s databases.

I couldn’t help but be struck by how silly this is – it is probably the case that the existing script files reference resources that will have different paths and names on the new platform. Some level of virtualizing or parameterizing these data up front would have made this effort one of reconfiguration and regression testing, rather than manual review of vast numbers of files.

One wonders whether such a suggestion would have been well received during the early days of the system, when such things often seem like unnecessary and time consuming luxuries that don’t help get the system out the door.
In practice, though, a little up front design work would probably have simplified the creation and verification of every one of the script files over the life of the system. And, after all, “add a new script file” is probably one of the most frequent life events in many systems.

I don’t really know what the precise issues are in this particular case, but I can think of many examples where failure to plan for reasonably expected “life events” created just this kind of problem, and also many examples from my own experience where precisely this kind of planning simplified system development, maintenance, testing, and verification throughout its life. The challenge is quantifying the benefits when you are trying to sell the concept, but it is well worth the effort.

Upcoming speaking engagements

Webcast on event processing and service-oriented architecture, sponsored by, recorded the week of October 21.


Presentation on operational responsiveness at Gartner's EA Summit in Orlando, October 7-9, sponsored by Progress Software.


The contents of this blog represent the personal opinions and intellectual property of Larry Fulton, and not those of past or present employers.

Contents copyright (c) 2009 Lawrence B. Fulton