1.1 Modernization Challenges


Legacy system modernization efforts fail for a variety of reasons that, in our experience, reduce to a handful of factors: complexity, software technology and engineering processes, risk, commercial components , and business objectives.

Complexity

Because of the size and inherent inscrutability of most legacy systems, it is critical to reduce complexity where possible and to manage complexity where it cannot be eliminated. More than anything else, complexity is the greatest limiter in legacy system modernization. This complexity stems from a need to

  • Consider a diverse set of modernization options, each of which may involve significant trade-offs

  • Perform analysis and interact with experts to compensate for a lack of up-to-date legacy system requirements/design documentation

  • Resolve the uncertainties about the implementation of a legacy system, including its functionality, integrity, and quality attributes

  • Obtain extensive quantitative and qualitative data on which to base decisions

  • Explore the impact of modernization from the perspective of multiple stakeholders and resolve conflicts stemming from multiple viewpoints

  • Accommodate organizational and project constraints and coalesce decision making across the organization.

Software Technology and Engineering Processes

Software engineering processes and software technology are often separated by a large chasm . Technologists often look on software engineering as irrelevant. Software engineers , on the other hand, often fail to recognize that even the most advanced processes do not guarantee success if the product is not competitive. To succeed in building an enterprise system, it is necessary to understand the theory behind engineering processes, the "bits and bytes" of software technology, and the business requirements. However, the intersection of these concepts is a no-man's-land where programmer, software engineer, or manager dare not tread. Communication among these splintered groups is sporadic and ineffective , and successes are often the result of accidents and individual heroics. Although mastering the range of concepts and techniques required may be daunting, the alternative ”backing into success while avoiding the many pitfalls ”should be frightening.

Risk

Unfortunately, many organizations are unable or unwilling to properly manage risk. This may stem from a misbelief that "what I don't know can't hurt me" or a lack of time, usually stemming from an unwillingness to properly manage past risk. It may also stem from an insufficient understanding of risk management and risk mitigation techniques, such as contingency planning.

Of course, not all software modernization risks are bad risks; accepting some risk is essential if we are to accomplish anything meaningful. However, much advantage can be gained by simply identifying risks early in the project, maintaining and monitoring these risks, and asking, "How will this activity help mitigate risk identified in my modernization effort?"

Commercial Components

The use of commercial components in a modernization effort is a practical necessity but is not without problems. Almost all software systems show signs of aging even before they are released. This is especially true for those developed with a large number of commercial components, because new component versions are released regularly. Software development efforts are often confronted with the problem of when to adopt and when to ignore these new releases. Many times, products are adopted when they fix an existing problem, less often when they provide a new capability, unless this new capability solves an existing problem. If the system is already well into the test phase, the configuration management board will be unlikely to accept the introduction of new versions of commercial software products, because the risk of introducing instabilities in the system is too great. As a result, it is likely that the released software contains old or obsolete component versions.

Business Objectives

When asked, many software engineering professionals tell you that they are in the business of making software; in reality, however, they are in the business of making money. As information technology (IT) is often considered overhead, this typically translates to increased efficiencies to accomplish the same or additional functions at lower costs. Legacy system modernization is an important tool in accomplishing this goal but must be performed within this context. Any modernization effort that falls outside business objectives, as management understands them, is headed for cancellation.



Modernizing Legacy Systems
Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices
ISBN: 0321118847
EAN: 2147483647
Year: 2003
Pages: 142

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net