ALL Perspectives

The new mantra for legacy migration

January 28, 2020 | BY Kailash Shinde

The new mantra for legacy migration

Legacy Transformation, or Software Modernization, refers to the conversion, rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or a hardware platform. The legacy transformation aims to retain and extend the value of the legacy investment through migration to new platforms.

The time required for application modernization or re-engineering is a crucial factor to consider when existing legacy applications enjoy properties worth preserving. They are already deployed and have usually undergone significant scrutiny by their users. A long history of maintenance has resulted in a “stress-hardened” code and a wealth of test and validation capabilities. Nonfunctional properties such as performance and accuracy have been fine-tuned. Application history exists in the form of original designers, current and past maintainers, and (potentially) in bug reports and change order records.

However, the same history of maintenance that “stress-hardened” the applications, causes a problem: The system becomes ‘brittle” and increasingly resistant to change, hard to modify, and thus becomes a candidate for modernization projects.

bitwise-The new mantra for legacy migration

Motivation or “need” for migration

There are a variety of reasons that dictate the need for migration of a legacy system:

Legacy languages are hard to support

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 4th generation languages popular in the 1970s-1990s and significantly impacts the migration decision.

People are scarce

People that are proficient in legacy languages are becoming difficult to find and retain. Younger talent is reluctant to learn “legacy” languages because the efforts don’t appear to be relevant to the advancement of their long-term career.

The underlying platform is hard to support

Many legacy systems run on legacy hardware systems. Such hardware systems are becoming more expensive to maintain, and personnel that knows these systems are also more difficult to find.

Legacy software does not integrate well with other IT systems

The architecture of legacy languages often does not lend itself to building bridges to other IT systems that have grown up around it.

Additional challenges posed by legacy systems

The need to migrate mainframe software is often driven by ongoing challenges, including:

  • The high cost of operating the mainframe
  • The shrinking pool of IT personnel that understand the mainframe system languages and structure
  • The need for faster application evolution in response to changing requirements by use of more modern software engineering methods
  • The need to integrate the application and its data more effectively with the balance of the organization

Despite these challenges, most of the legacy software performs an extremely valuable function that must not be disturbed by a migration.

Common pitfalls in manual 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. Also, there is a continuous war between the application maintenance staff, who must keep the application running during the migration process, and the migration staff, who do 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 fate in addition to communication and coordination problems.

Strategies & planning

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.

bitwise time and risk management

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, multi-year 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 software modernization decisions is a process within an organizational context. “Real-world” decision making in business organizations often has to be made based on “bounded rationality”. Besides that, there exist multiple (and possibly conflicting) decision criteria, which is why the certainty, completeness, and availability of useful information (as a basis for the decision) is often limited.

bitwise- capability maturity framework
Conclusion

Legacy systems are still alive because of their distinct characteristics and good pedigree. In the last 40 years, we have learned that it is quite economically and practically challenging to migrate legacy code worth trillions into other technologies that eventually were short-lived.

However, it is always possible to either eliminate or gradually integrate the legacy systems by following an effective migration strategy and appropriate migration tools. With the right strategy and a steady approach, legacy migration is not only feasible but advisable for an enterprise-wide transformation for better agility and resilience.

Relevant Case Studies

This is a center of discovery and innovation where businesses can enable themselves with the latest insights and perspectives from technology experts to stay relevant in a competitive environment.

RELEVANT Reads

BITWISE’S CONTINUOUS TESTING SOLUTIONS: BRINGING VELOCITY TO YOUR BUSINESS OPERATIONS

Perspective | October 10, 2023

BITWISE’S CONTINUOUS TESTING SOLUTIONS: BRINGING VELOCITY TO YOUR...

As DevOps transformation continues, the quality testing speed and agility are a big challenge that…

Read more

PROACTIVE SUPPORT MODEL FOR DISPUTES MANAGEMENT SYSTEM

Perspective | September 4, 2023

PROACTIVE SUPPORT MODEL FOR DISPUTES MANAGEMENT SYSTEM

Bitwise’s Solution for a Fortune 500 Client

Read more

SUPPORT AND MONITORING MADE SIMPLER THROUGH EFFECTIVE AUTOMATED DELAY PREDICTIONS USING AIML

Perspective | June 20, 2023

SUPPORT AND MONITORING MADE SIMPLER THROUGH EFFECTIVE AUTOMATED...

Today, production support is a critical part of any business, and the most critical part…

Read more