Friday, February 27, 2009

Longevity As The Main Architectural Goal

Architecture focuses on quality for the major reason of having the software or
building or system last for a very long time. I can argue that if a software doesn't need to last, then architecture is not needed. So for throw-away software projects that are only planned to last few months to a year, an elaborate architecture is not needed and is a waste of time. But it is rare to find software written intentionally to be thrown away.

Quality makes software last for a long time, maximizing the ROI. What gives quality to software design is a good architecture.

One can argue that some systems are meant for one usage or to self-destruct so where's the goal of "longevity" in that? When we say that the purpose of a system is longevity, we don't mean the actual physical atoms of the system to last forever, what's meant is the system design, static and runtime structure to have longevity and stand the test of time. If this design of this one-use system is re-used over and over then longevity was attained. For an example, the car air bag design is used over and over in so many instances.

Software architects should always strive for longevity of a system to maximize ROI for the stakeholders. This is done by optimizing the archictural qualities.