Many of you might be starting off the new year with renewed vigour and a firm resolve to get ahead of the technology curve, and modernize your aging stacks and applications. Before you get swamped by a bevy of offerings and conflicting advice on the best strategy, I would like to share a brief primer on a business-value driven approach for modernizing legacy applications.
Take stock of your technology assets
As a first step, perform a thorough analysis of your technology assets and application landscape and understand the causes, risks, and need for modernization. Evaluate and assess each application in your portfolio from the following perspective:
- can the core technologies/languages/platforms be used to build the application support your current and future business needs?
- do you face any risk of accumulated technology debt?
- can you find people with skills needed to support your technology stack?
- what is the cost of supporting your current technology stack?
- are your core processes agile and automated to support higher release cadence and frequent change?
- is the architecture flexible and modular to support evolving functionality?
- can it leverage new and emerging technologies?
- does it fit the bill in terms of scalability, security, and integration?
- does it suffer from rigid schemas and interdependent, spaghetti complexity?
- can the application support functionality to meet digital business needs?
- is it customizable and extensible to be part of different platforms?
- is there continued business value and market fit with its current functionality?
The answers to the above questions will enable you to analyse the risks, cost, and complexity of your application portfolio and assess the extent and scope of your modernization needs.
Visualize your applications as loosely-coupled services
Using Gartner’s pace layer approach, traditional application portfolios can be categorized into one of the three layers namely:
- Systems of Record (SoR),
- Systems of Differentiation (SoD), and
- Systems of Innovation (SoI)
Traditionally, in any business with legacy burden, the usual picture of these layers will be in the form of a pyramid, with the SoR forming the core or base, SoD in the mid-tier and and a few SoI (if any) at the apex. Historically, SoR handled core functionality needed by businesses, delivered lion’s share of the revenue, and were designed as safety-first, stable systems. But the down side of this approach is SoR are very difficult to change and are often the most expensive to modernize in terms of time, money, and effort. On the other hand, SoI are designed as flexible systems of engagement and innovation that can quickly be changed to suit evolving customer, technology, and market needs.
While this traditional hierarchical view of applications provided business stability, they have also become a major stumbling block for innovation and agility. Tightly-coupled applications with rigid, inflexible architectures are being replaced with flexible architectures based on APIs/Microservices, that can be packaged into different applications for different platforms.
“I strongly believe that every digital business must aim to transform their legacy hierarchical portfolio into loosely-coupled services and modular components which are easy to create, change, integrate, and support”
Visualizing transformation of your legacy applications into loosely coupled services and modular components will help you a great deal in understanding the challenges of modernization.
Map current assets to business needs
Once you visualize your portfolio as distinct layers, you will be able to quickly identify the applications that meet your current business needs, deliver maximum value, and continue to generate significant revenue. It’s usually the case that the fit and value of any businesses’ core systems deteriorate over a period of time, whereas on the other hand, the risks and costs keep increasing.
This mapping exercise will enable you to rationalize your portfolio, identify applications to retire, tag applications that deliver the maximum business value, so that you can prioritize and focus your modernization efforts on them.
Identify dependencies, impact, threats, and opportunities
Once you identify modernization needs of your portfolio, it is important to understand the dependencies of a given application or component with other parts and its impact on the business. You must also evaluate the threats of competing products, new technologies, and cost of not modernizing. Simultaneously, you must also look at the opportunities of leveraging new technologies to deliver continuous business value. All these insights must be factored into the decision-making process prior to choosing the right modernization strategy.
Set priorities based on business-value and choose an optimum strategy
‘The 6 R’s’ of application modernization strategies that are widely followed are namely: Rehost, Replatform, Refactor, Rearchitect, Rebuild, and Replace. The risks and rewards, effort and impact of each of these strategies differ from one to the other.
Obviously, strategies such as Rehost or Replatform are relatively easier to accomplish, but also have a very limited impact. On the other hand, strategies or approaches such as Rearchitect and Rebuild are far more intensive from a cost and effort perspective, but will also have a wider and more meaningful business impact. It’s not easy to quantify business value/impact, but using metrics such as TCO, reduced time-to-market, increased frequency of releases, agility to innovate and make quick changes, and flexibility to extend across platforms help significantly in evaluating the effectiveness of different modernization strategies.
There is no universal panacea for legacy modernization, and different strategies are designed for different scenarios. You must choose the most optimal strategy that will enable you to derive the maximum business value, while mitigating your risks. Waiting on a ticking time bomb is not an option either, so put on your thinking hats and get started with the journey of modernizing legacy applications in your portfolio.