However, the same history of maintenance that “stress-hardened” the applications, cause a problem: the system becomes ‘brittle” and increasingly resistant to change, hard to modify, and thus becomes a candidate of modernization projects.
Legacy Modernization, or Software modernization, refers to the conversion, rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or hardware platform. Legacy transformation aims to retain and extend the value of the legacy investment through migration to new platforms.
There are a variety of reasons that a migration of a legacy system may be needed:
The legacy languages and development tools needed to support the legacy system are increasingly difficult or expensive to obtain. This is a very common occurrence with 4GLs popular in the 1970s.
People that know the legacy languages are becoming difficult to find and retain. Younger staff are reluctant to learn “legacy” languages because it does not appear to advance their long-term career.
Many legacy systems run on legacy hardware systems. Such hardware systems are becoming more expensive to maintain, and personnel that know these systems are also more difficult to find.
The architecture of legacy languages often does not lend itself to building bridges to other IT systems that have grown up around it.
Migrating larges software applications needs automation. The need to migrate mainframe software is often motivated by a mixture of motives, including :
Yet most of the legacy software performs an extremely valuable function which must not be disturbed by a migration. Hand-migrating large applications by re-coding from scratch usually causes huge management overheads when the migration team attempts to re-validate the requirements with management. Hand-migrating by translating line for line introduces errors by damaging implicit business rules, and suffers from scope creep. In addition, there is a continual war between the application maintenance staff, which must keep the application running during the migration process, and the migration staff, which does not want to see any change during the lengthy migration process. As a consequence, many manual migrations fail or run significantly over time and cost budgets. Offshore hand-migration suffers the same problems as well as communication and coordination problems.
Many organizations face the problem of having to modernize their existing software systems by migrating to more capable systems. Modernizing legacy software systems is a complex engineering problem that includes most aspects of traditional software development with more constraints. A successful migration effort requires both a sound development plan and a sound migration plan.
A development plan addresses the selection of the appropriate software processes, methods, tools, and hardware and software platforms. A migration plan created in conjunction with the development plan is necessary to help ensure that the operational transition to the new system goes smoothly.
A good migration plan should weigh programmatic and technical drivers for system development against customer priorities. Because of this, the plan may impact system development and certainly should impact system deployment. Iteration among the key stakeholders is necessary for an effective migration effort. Like development, migration planning involves tradeoffs among cost, schedule, risk, and resources.
Legacy system modernization is often a large, multiyear project. Because these legacy systems are often critical in the operations of most enterprises, deploying the modernized system all at once introduces an unacceptable level of operational risk. As a result, legacy systems are typically modernized incrementally. Initially, the system consists completely of legacy code. As each increment is completed, the percentage of legacy code decreases. Eventually, the system is completely modernized. A migration strategy must ensure that the system remains fully functional during the modernization effort.
Making of software modernization decisions is a process within some organizational context. “Real world” decision making in business organizations often have to be made based on “bounded rationality”. Besides that there exists multiple (and possibly conflicting) decision criteria, the certainty, completeness, and availability of useful information (as a basis for the decision) is often limited.
Legacy systems are still alive because of their distinct characteristics and good pedigree. In the last 40 years, we have learned that it is neither practical nor affordable to migrate $5 trillion worth of legacy code into other technologies which were short lived. However, it is possible to either eliminate or integrate the legacy systems by following effective migration strategy and appropriate migration tools.
Kailash has rich exposure on multiple domains such as Credit Cards, Retail Insurance and Publication Industry with proven track record of leading teams in the implementation of large scale enterprise wide projects. He has played a pivotal role in delivering several migration projects in Australia and USA and has become the goto person for any migration related help