Last week, a Federal News Network article from 2020 went viral on Reddit. While the original article focused on the IRS’ long-standing strategy to retire their Individual Master File (IRF) system – written in Assembler code that is now more than sixty years old – a discussion quickly ensued in the comment thread around the state of critical applications worldwide that still run on legacy systems.
The reality is that many organizations are still deeply entrenched in legacy systems to keep their business operating, and a majority of Reddit users seem to be recognizing the problems with this too. Even though these systems are robust and reliable, shrinking talent pools and a lack of integration with modern software development practices like DevOps are hindering organizations.
We know that many organizations worldwide are grappling with the increasingly difficult task of integrating and migrating from legacy platforms to more modern ones. It's a complex dilemma, and the last two years in particular have clearly highlighted this. Organizations have been challenged in more ways than many could have ever imagined. Demands to deploy a global remote workforce appeared overnight, driving an accelerated adoption of technology to support operations. But even though CIOs, IT leaders and even federal governments have acknowledged the challenges with legacy systems, the truth is that it is the systems themselves that are unable to reliably support or integrate with modern applications such as the Cloud. Modernization and digital transformation efforts can no longer be put on hold.
So, what exactly is holding organizations back?
For one, legacy applications are often responsible for handling critical data. Strict privacy requirements that vary from industry to industry leave many organizations with little choice but to retain at least some of their data on-premises. A hybrid cloud approach to modernization is the best solution for larger businesses looking to migrate to the cloud, either completely or partially.
Hybrid cloud environments consist of a mix of on-premises and cloud services that are connected to allow orchestration between the platforms in such a way that the combined entity acts as a single network. Permissions and identity management, for example, can be applied to both local and cloud-based servers without the need for replication. In a legacy modernization sense, hybrid cloud is a great option because it allows for a staged approach to migration, where business operations can be moved in the cloud or on-premises depending on what's best for that particular service.
Whichever disposition strategy your organization chooses to adopt will likely depend on a number of factors unique to your business goals and IT environment. There is no “one size fits all” solution, and you may find yourselves considering either one or several of the following:
- Rehosting (also referred to as ‘Replatforming’ or ‘Lift and Shift’) ensures your entire mainframe estate is deployed to the target environment in the languages and database models you need. Source code is recompiled where possible (or transformed using tools where not), and customized to support the specific rehost technology. Data is migrated – with the structure of some original data types retained - e.g. Relational, VSAM, Sequential, GDGs, etc. In order to support the same processing capabilities as the original legacy environment, third-party solutions such as job schedulers, print and output management, security, and systems management solutions are replaced.
- Refactoring (also known as ‘Automated Conversion’) retains functional equivalence while refactoring core legacy applications to fully maintainable, object-oriented Java or C# code. This means once the legacy application and database are transformed, developers can extend application functionality directly without having to navigate the original legacy code to do it. The legacy system's critical business logic is retained while allowing for deeper integration with other Java or C# workloads and additional customization to meet evolving business requirements.
- Re-engineering (also known as ‘Rewrite’) captures original application specifications where applicable, incorporates any required new functionality (and this is typically a driver for this approach) - then redesigns and develops the new solution using the latest application frameworks.
- A Replace (also referred to as a ‘Repackage’ or ‘COTS replacement’) approach focuses on replacing legacy application functionality with packages and components available from third party vendors.
Regardless of your preferred disposition strategy (or strategies), the starting point of any modernization journey should be a comprehensive assessment – encompassing applications, operations, and the supporting infrastructure. Stakeholders will be able to use the findings to make important application modernization decisions, including disposition strategies and target environment architectures. In addition, it reduces costs and risks by pointing out potential bumps in the road, and an experienced vendor can provide suggestions on how to get through them.