Let me begin with a soccer analogy: If you think digital transformation is your goal, you can quite safely consider legacy systems to be the goalkeeper! Legacy systems are quite clearly a hurdle in digital transformation. It becomes imperative, therefore, to ensure that we devise effective ways to modernize legacy systems, in order to reduce costs and become more agile. In this blog, we will try and find how we can manoeuvre our way around this goalkeeper and score our goal of achieving digital transformation by modernizing the legacy systems.
A Gartner study has concluded that modernizing legacy applications can reduce IT costs by 74%.
The study also predicts that every penny spent on digital business innovation to the end of 2020 will need enterprises to spend at least 3X of that to continually modernize the legacy application portfolio.
*Source: Gartner, IT key metrics data 2017: Key Infrastructure measures: Mainframe
In today’s IT landscape, we often come across the term ‘legacy applications/systems’, especially for large customers in manufacturing, healthcare, travel, or banks. A ‘legacy’ system is typically viewed as a complex system or a set of multiple applications running on an outdated platform, communicating with each other in a proprietary manner that is hard to understand.
Generally, legacy applications comprise features and functions that are more tightly coupled, sharing the same resources and memory space. This style of architecture is often known as a monolith. It takes many years of customization and fine-tuning to ensure that the system delivers the required business functionality efficiently. Even then, it fails to blend with the landscape comprising upcoming technologies like cloud, microservices, data analytics, etc. Such monoliths are typically mission-critical applications and have remained untouched, mainly due to the high costs and risks associated with a technological overhaul.
What are the drivers of modernization?
Modern application architecture has kept evolving continuously to be loosely coupled, using microservices and APIs (Application Programming Interfaces), which provide the foundation for cloud-native applications. On the other hand, legacy applications are more tightly coupled, have ‘silo’-based architecture, spaghetti design, and severe scalability limitations.
An organization’s IT growth and innovations are pretty much driven by its business vision and goals. The need to evolve, make progress, and stay relevant in the current business landscape, is what sets the wheels of transformation in motion. Here are some typical legacy modernization drivers that necessitate business and IT to explore modernization strategies:
- Aligning with the organization’s IT vision and goal
- Faster time-to-market – innovation, agility
- Reducing cost
- Improving user experience
- Adhering to compliance and regulatory requirements
- Overcoming skill shortage
- Eliminating complex disconnected monolithic systems and improving integration
- Extracting and preserving embedded business logic from code
- Leveraging technology developments to become future-ready – virtualization, cloud, microservices, etc.
Legacy coder erosion - Over the past 5 years, businesses have lost an average 23% of their mainframe workforce; of those, 63% of positions remain unfilled. (Source: Forrester Consulting March 2018)
Choosing the right approach to modernize legacy systems– portfolio assessment and categorization
Before we begin with approach identification, it is necessary to thoroughly assess the application landscape to be modernized. This assessment helps in gauging the overall health of the applications and in identifying any gaps, with respect to the required target system. Broadly speaking, the assessment should cover the following points:
- Overall portfolio health
- Application priority list
- Functional and technical health of each application
- Business goals
- Suitable modernization approach
- Cost and duration of modernization
- ROI and benefits realization
The modernization approach within a portfolio can vary, depending on the mix of applications under it. It is also important to understand that modernization does not come with a one-size-fits all approach. The modernization solution for one application might not be a best fit for another, and this is where assessments play such a crucial role. The following diagram shows the four blocks that specify the overall strategy and the associated legacy modernization technique(s):
Let us go through each strategy along with its associated techniques:
1. Retire or replace: This category is for applications that are low on business and technical value and are at/approaching their end-of-life stage. At this stage, it is better to either retire or replace such applications with a more viable option.
Suggested modernization techniques:
a) Replace: There is no need to reinvent the wheel if a custom solution, which can deliver much more value, is already available. Remove the former application component and replace it with a completely off-the-shelf (COTS) solution which meets the purpose.
I. State Bank of India’s core banking system was replaced by the TCS BaNCS solution. This implementation is the largest centralized core system implementation ever performed. The transformation process started in 2002 and was completed by 2008.
II. In 2013, Commonwealth Bank of Australia (CBA) upgraded its core system to SAP banking suite.
b) Retire: The application does not provide any business benefit, has redundant functionality and poor technical health. Retiring helps in consolidating the portfolio by removing the obsolete application.
2. Reinvent and enhance: This category is for applications that have a mature and sustainable technical base. Such applications exhibit fair business value but incur huge maintenance costs. Customers can think of cutting costs by rehosting or re-platforming (e.g., cloud) without modifying the existing functionalities. Doing so will save costs and will also make the application more flexible and scalable.
Suggested modernization techniques:
a) Rehost: Based on the Lift and Shift philosophy, the application is redeployed to a physical, virtual or cloud infrastructure, without altering the application code. This is a cost-effective strategy that can also be implemented quickly, having zero or minimal impact on the application. It helps in significantly reduced costs on infrastructure and data centres.
Rehosting is a less resource-intensive strategy. Unlike re-platforming or refactoring, rehosting does not harness the complete services and features offered by target platforms (e.g., auto-scaling on cloud).
GE capital reduces costs by 60% and improves agility by rehosting its mainframe to the OpenFrame platform of TmaxSoft.
b) Re-platform: Often known as the lift, tinker and shift strategy, this strategy migrates an application component to a new runtime platform. Some modifications to the application might be needed to harness the features and benefits of a new platform. The overall features and functions of the application remain the same.
For example, moving to a cloud platform provides the opportunity to leverage cloud features like auto-scaling, serverless computing, containerization, and its orchestration, etc.
Re-platforming may also pave the path for DevOps implementation, which can further provide a competitive edge during software modernization.
Ping An Bank (PAB) of China opted for re-platforming to improve its user experience by integrating products and services under a common platform. This resulted in an increased customer base and higher revenues.
3. Retain and maintain: This category includes applications that have high business value and better technical features, requiring no major transformation. It is preferred to continue support and maintain business as usual (BAU) with periodic investments and enhancement (technical + business) to increase application life. This model helps in retaining talent along with application knowledge and ensures quick upgrades at low cost.
4. Re-engineer and upgrade: This category is for applications that can generate greater business value but are constrained due to an outdated platform. They should follow the approach to re-engineer, refactor or rewrite the legacy systems to support innovation and adapt to the latest technology trends.
Suggested modernization techniques:
a) Encapsulate: This is also known as the re-skin or wrapper approach. Retain the application’s features but create a new wrapper of presentation layer around the solution via APIs. This enhances the application’s capability and makes it accessible to other solutions.
This is similar to a preserve-and-protect approach that helps extend the current application’s life, thus providing cushion to better plan the decomposition of the monolithic application over time.
DBS bank has restructured its enterprise into 33 platforms, connected by an API layer for internal and external use. In 2017, the bank rolled out the then-world’s largest API platform (hosted by a bank), offering over 150 APIs across more than 20 service categories such as fund transfers and real-time payments.
b) Refactor: In this technique, the existing code is restructured and optimized without changing its external behavior. Refactoring plays an important role in technical debt reduction and in improving the component’s features and structure. It revitalizes the application by enhancing its features, making it more suitable for future modernization initiatives.
c) Re-architect: When the system fails to meet its performance and scalability requirements or is unable to provide a pleasing end-user experience, then an architectural overhaul could come to the rescue. The application’s code will need to be altered materially to migrate it to the new application architecture and to utilize the new and better capabilities of the target platform optimally. This approach is more intensive than refactoring but results in a more flexible, scalable, and robust application. SCS (Self-Contained System) or microservice architecture are some of the preferred approaches to develop maintainable, loosely coupled, and independently deployable services.
According to IDC Worldwide Digital Transformation 2019:
By the year 2022, 90% of all new applications will be built using microservices architectures that enhance the ability to design, debug, update, and use third-party code.
d) Rebuild: This involves rebuilding or rewriting the application component from scratch while maintaining its features and functionalities. Though this is the most expensive technique, it also gives the maximum return on investment. Rebuilding can help leverage modern technologies and design applications through the latest functionalities and improved capabilities.
Modernizing your legacy applications is about leveraging their core business value and transforming them into more modern architectures, technologies, and designs. However, this does not mean that you need to follow a big bang approach. It is better to opt for an iterative or evolving approach. The initial transformation cost may appear high, but the true cost of not considering modernization and ignoring the initial warning signs will eventually add up over time and will turn out to be much more!