All enterprises have a dirty, not-so-little secret: their legacy applications. In fact, more than 90% of Fortune 500 companies still rely on legacy technologies and services to carry out mission-critical tasks.
You know, those boring, often deeply embedded business applications that were developed over ten years ago to serve a specific business scenario and have been maintained, tweaked, and adapted ever since? They have worked dependably for decades, users are familiar with them, and often a ridiculous amount of critical business process logic and intrinsic knowledge is encoded in them with little to no way to extract it.
Reasons To Modernize Legacy Applications
While the applications themselves might not have any issues, compatibility problems could arise every time you try to upgrade to a new version of Windows 10 or other integrated or interconnected applications.
Or you might not be able to find people with the skill set required (e.g., the average COBOL developer is 55 years old) to maintain them much longer or with the knowledge to help transition them. Or maybe your third-party business applications will go end-of-life at some point in the future (e.g., SAP R/3 will no longer be supported past 2025). Or your executive management mandates that app infrastructure and applications need to be upgraded as part of a company-wide Digital Transformation effort because the underlying infrastructure cannot be supported or is unsecure.
In addition, legacy applications are costly. Gartner predicts that companies will have to spend at least three dollars for every dollar invested in digital business innovation through the end of 2020 to continuously modernize the legacy application portfolio.
The need to upgrade can be caused by a variety of reasons, but the fact is that application delivery has significantly changed, and organizations are developing, deploying, or adopting SaaS and cloud-native solutions every day as part of their digital transformation strategy.
The Goal Of Evergreen IT Is To No Longer Need To Invest In Legacy Systems
Whatever the initial motivation for modernizing your legacy application portfolio, the goal is to drastically minimize legacy apps in order to be successful in adopting Evergreen IT Management. Or, in the words of Price Waterhouse Coopers:
"The goal is to transition IT operations from predominantly manual to predominantly automated processes driven by intelligent software. The result is an approach where incremental IT investment no longer creates legacy systems. Instead, each layer of the IT stack can be continually refreshed without worrying about inter-dependencies between layers.”
Organizations have several options when it comes to modernizing their legacy systems. For example:
Rebuilding. Rebuilding or rewriting your old business applications is the first thought that usually comes to mind. While you will want to be careful to preserve the initial scope and specifications, this is also the perfect opportunity to optimize and possibly automate business processes by first extracting the business logic from the code and then re-imagining the app from scratch.
Replacing/Retiring. Another popular option for many is to retire or replace an application, but since many legacy apps are business critical, retiring often isn't an option. However, a new breed of vendors are offering modern, constantly up-to-date alternatives to almost all standard legacy applications. If replacing is your path of choice, be sure to consider new user requirements and business needs in your decision.
Refactoring. Alternatively, you can also restructure and optimize your application's existing code. This will allow you to modernize and improve the app's features and performance, while keeping the external appearance the same and reducing its maintenance and upgrade efforts.
Re-architecting or moving to a new platform. Whether you significantly change your application to be able to move to a new architecture or leave most of the code alone and adapt the app to simply migrate to a new runtime platform, re-architecting or a new platform are great options when rebuilding or replacing aren't options.
Encapsulating. If you cannot change the code itself but need to extract more lifetime and value from your legacy application, you could encapsulate your data and business functions and make them available via APIs or micro-apps.
Virtualizing & Containerizing. Rather than maintaining dozens or even hundreds of the same legacy applications, you could redeploy your app on a virtual machine or in a container. This will extend the lifecycle of the legacy application, although you will still likely require a more strategic solution in the short to mid-term.
The problem of legacy applications has long been the burden of IT to manage, and is often the primary cause of transformation project slippage and cost increase. But Evergreen IT strategies need applications to be kept within a reasonable lifecycle - this is a big culture change for many organizations. All of the above options have significant benefits and challenges, and it is crucial to pick the right path for each business application as one size doesn't fit all. Take a step back and take the time to carefully evaluate what problem you are solving, which business processes and logic the app contains, and how this fits into your future mode of operation. The aim is not simply to exchange but to improve, the benefit being a much more agile environment in which to drive end user productivity.