A bank with part of its mainframe application built in a COBOL/CICS environment faces a skills shortage. The application itself has no issues, but something has to be done. The management team decides to move it off the mainframe to an environment with more people available to support it.
Now the bank faces a range of different modernization options — rehost, replatform or rebuild. All have different purposes, effects, values, costs, risks and impacts. But which one is right?
Replacement isn’t the only option
“Application modernization is not one ‘thing,’” says Stefan van der Zijden, research director at Gartner. “If you’re faced with a legacy challenge, the best approach depends on the problem you’re trying to solve. Replacement isn’t the only option.”
Remove the obstacles to digital business
Legacy systems are often seen as holding back the business initiatives that rely on them. When a tipping point is reached, like the skills crunch example, it’s time to look to application modernization to help remove the obstacles.
Read more: The First 100 Days as an Application Leader
Gartner predicts that every dollar invested in digital business innovation through to the end of 2020 will require enterprises to spend at least three times that to continuously modernize the legacy application portfolio.
Spending that money effectively will require application leaders to carefully select one of the seven different modernization approaches.
- Encapsulate. To leverage and extend an application’s features and value, encapsulate data and functions in the application and make them available as services via an application programming interface (API). Implementation specifics and knowledge are hidden behind the interface.
- Rehost. Redeploy an application component to another physical, virtual or cloud infrastructure without recompiling, altering the application code, or modifying features and functions.
- Replatform. Migrate an application component to a new runtime platform. Make minimal changes to code to adapt to the new platform, but don’t change the code structure or the features and functions it provides.
- Refactor. Restructure and optimize existing code without changing its external behavior to remove technical debt and to improve the component’s features and structure.
- Rearchitect. Materially alter the application code so you can shift it to a new application architecture and fully exploit new and better capabilities of the application platform.
- Rebuild. Rebuild or rewrite the application component from scratch while preserving its scope and specifications.
- Replace. Eliminate the former application component altogether and replace it, taking new requirements and needs into account.
“The key is to understand if your problem is caused by technology, architecture or functionality of the application, and how each modernization approach improves those aspects,” van der Zijden says.
After conducting a thorough assessment, the best choice for the organization facing the skills shortage problem above is between rearchitect and rebuild or replace. Rearchitecting has a moderate cost and risk, but will yield moderate results. Rebuilding or replacing provides the best results, but with higher costs and higher risk.