Techweb
CMP Media / Optimize - Business Strategy & Execution for CIOsCMP MediaOptimize
Optimize Magazine DisciplinesExpertsGap AnalysisDiscussionsWhite PapersExecutive Events Information Week Optimize Magazine
Optimize Magazine
Optimize Magazine
Tuning Up Legacy Systems
Continual enhancements and modernization are the best defense against system obsolescence.
Email
Reprint
Discuss
Illustration by
Allen Crawford
By Robert Seacord
Optimize
August 2003, Issue 22
 Story contents


Your 10-year-old Chevy may not look like much, but you rely on it to get you to work everyday. And with a kid going off to college next year, you're not inclined to pick up a new-car loan now. Well, somewhere between regular oil changes and the junkyard lies the key to keeping that car on the road. CIOs find themselves with a similar challenge as they manage a growing population of aging yet critical computer systems in an economic climate where resources are limited. They're scrambling to address the growing "legacy crisis" that is tying up their IT resources and limiting growth.

A good way to begin is by careful evaluation of the overall IT portfolio to determine which core systems should be replaced and which can be successfully modernized. Because system replacement carries high risk in terms of expense and work disruption, it's best to develop a forward-looking plan that avoids wholesale replacement. A successful sustainment and modernization program can keep systems current with changing business and technology requirements while saving time, money, and IT staff resources. One mark of the legacy crisis is the immense and growing amount of old code. Ian Sommerville, professor of software engineering at Lancaster University in England, estimates that 250 billion lines of source code are now being maintained. And the number is increasing all the time.

Software becomes legacy when it begins to resist modification and evolution. When the knowledge embodied in legacy systems constitutes a significant corporate asset, the systems can't simply be discarded—they must be replaced.

But replacing legacy systems places a huge burden on IT departments and prevents them from developing new applications and capabilities. IT can ease this burden by increasing the efficiencies of maintenance processes and eliminating redundant applications. Even these activities, though, have practical limitations. The cost of discovering and implementing new efficiencies will eventually exceed the cost of leaving existing inadequacies in place. When processes can no longer be cost-effectively optimized, the only way forward is to rethink basic approaches. CIOs responsible for legacy systems are well-advised to adopt and communicate a strategy for sustaining and modernizing legacy systems. (Some best practices for leveraging software investments are also discussed in High-Octane Software)

The life cycle of a typical information system includes maintenance, modernization, and replacement activities. Adding sustainment to the mix can prolong a system's life.

  • Maintenance is an incremental and iterative process in which small changes are made to a system. These are often bug fixes or small functional enhancements that don't involve major structural changes.

  • Modernization involves more extensive changes that still retain a significant portion of the existing system. These changes may include restructuring the system, enhancing functionality, or modifying software attributes.

  • Replacement requires rebuilding the system from scratch and is resource-intensive. This is appropriate when legacy systems can't keep pace with business needs and modernization isn't possible or cost-effective.

    A typical strategy is to replace the system in the direst need. The CIO often reassigns developers released following the deployment of a new system to replace the problematic legacy system. This strategy has several flaws, however. First, it's optimistic to assume that deploying the new system will free up resources to devote to replacing the failing legacy system. For example, what resources will be available if the new system doesn't completely replace the capabilities of the legacy system? And what resources must be retained to maintain the new system?

    Second, the difficulty of replacing the failing legacy system must not be underestimated. Legacy systems, by definition, resist change. Many have grown very large over many years and contain business knowledge that may not exist in any other form inside the company. The replacement system must capture and implement this business knowledge.

    Even when replacement efforts succeed, they often fall short of duplicating the capabilities of the original system. Users must frequently wait for a second or third release to fully restore the capabilities of the legacy system.

    CIOs must also support systems that aren't being immediately replaced. They often siphon off money from the maintenance budget to pay for expensive replacement efforts. But even the newest systems require continued investment to duplicate all the capabilities of the legacy system. As a result, the neglected systems continue to deteriorate and become obsolete.

    Transitioning development staff from one replacement effort to another is a grossly inefficient use of IT staffs. First, the developers must come up to speed on the operational domain of the new system. This requires an investment of money and time. Second, domain expertise for the system just completed is lost. And third, attrition rises higher than usual, as developers already considering a job change are more likely to move around during this upheaval.



  • Optimize Magazine
    Optimize Magazine Marketplace (Sponsored Links)

    Buy a Link Now


    Optimize Magazine Optimize Magazine Optimize Magazine Optimize Magazine Optimize Magazine
    Optimize Magazine Optimize Magazine
    Optimize Magazine