Application Modernization in 5 Steps
Modernizing legacy applications is a critical undertaking for many organizations. According to an independent survey commissioned by EvolveWare, 51% of IT leaders either currently face or anticipate facing critical issues in maintaining legacy applications. This makes their organizations candidates for modernization.
Application modernization can be a daunting task, however—not only because these initiatives are complex, but more so because there is a growing shortage of talent with knowledge of legacy technologies and their programming languages.
Hence, it is no surprise that 55% of respondents that participated in the survey planned to modernize only those applications that were at risk of critical failure. Additionally, 55% of respondents indicated that they are focusing their modernization efforts on applications with few to no dependencies.
In other words, the plan is to tread lightly because IT leaders have experienced too well the failures and budget overruns of a "Big Bang" approach to large-scope projects. Even so, organizations may run the risk of misaligned expectations. This leads to poor planning for assigning resources and selecting tools, as well as insufficient due diligence on critical tasks and processes.
Organizations must set themselves up for success with this important and increasingly urgent initiative. A phased approach to application modernization will help. Here are five steps to go on with.
1. Gain Consensus on Goals and Resources
Various stakeholders may have differing goals for modernization initiatives. Commonly, business leaders may want to embark on application modernization specifically for the sake of moving to the cloud—seeing cloud migration as a way to improve customer experience and potentially reduce costs. But only 22% of IT leaders reported cloud migration as their motivation for application modernization. The most commonly reported motivating factor reported in the survey of IT leaders—at 40%—was that of boosting employee productivity.
This disconnect between the business side and the IT side seems to arise because of the difference in focus for the two groups: IT leaders are likely worried about challenges they face in maintaining applications, while C-suite leaders are generally worried about increasing efficiency to drive revenue and profitability. Another way to look at this is that business leaders look at how modernization can drive direct contributions to revenue, while IT leaders look at how modernization can help manage specific challenges.
It is a critical first step for IT teams and business stakeholders to work together to define pain points, calculate the impact of an application going offline, and evaluate how their competing interests and actions may impede strategic goals. Using this information, both sets of parties can identify which applications are most important to modernize—and then begin allocating funding and resources to achieve agreed-upon goals.
2. Evaluate Applications that Are Selected for Modernization
After determining which applications must be modernized, IT teams should ensure that they have a thorough understanding of these applications. Knowledge of these legacy systems is critical to creating a solid foundation for delivering on application-modernization initiatives. This allows the project to be planned with intermediate deliverables that allow organizations to develop subsequent steps and measure progress toward achieving their transformation goals.
In the IT survey, 41% of respondents felt very confident about their understanding of legacy systems while planning for their modernization. Among those who had already begun the process, however, this number dropped to 28%—strongly suggesting that IT teams did not fully understand the level of knowledge required for these efforts.
Many of these respondents indicated that they based their confidence level on the memory retention capabilities of their support personnel. At the same time, 81% of respondents showed concern about being able to hire or retain enough talent with sufficient legacy-programming skills to understand their applications and support their modernization initiatives. Without sufficient talent, it can be difficult to generate a full set of detailed documentation as necessary to support decision-making around the modernization effort.
Automation platforms are a critical piece of this endeavor as accelerators and risk mitigators for tasks that are prone to human errors. These platforms extract metadata from source code and generate a full set of documentation artifacts—including reports, diagrams, and various representations of business logic. This information will also reveal application dependencies, complexity, and code that needs to be deactivated or optimized.
With this knowledge, IT teams can create modules or subsystems—such that each subsystem becomes a manageable mini-project that can be assigned for rules extraction or optimization for code migration. They can also identify external applications that require concurrent modernization, as well as pin down or validate the most suitable approach to modernization for each application.
3. Determine or Validate the Best Path to Modernization
There are multiple paths to modernization. These include replacing, rebuilding, and refactoring applications.
Replacing applications with commercial off-the-shelf (COTS) products is the fastest way to modernize. If substantial enhancements are required for an existing application, however, organizations may elect to rebuild such applications in modern programming languages and architectures. If a suitable COTS product isn't available and the application doesn't need major enhancements, such applications can be refactored by optimizing the code and migrating it to a modern language and architecture.
4. Finalize Processes and the Resources Required to Implement Them
Once a path to modernization has been determined for each application in question, the next step is to finalize the processes that will best implement the selected strategy. Since each process will require both human resources and automation tools, this phase should include costs, preferred technology vendors, time frames, and risk-mitigation strategies. To gain approval and buy-in, leadership feedback should be used to refine the plan.
5. Implement a Pilot Project to Ensure It Can Be Scaled
The final preparatory step is to conduct a pilot project on a module of the application to be modernized. During this evaluate-and-learn project, it is important to ensure that the selected processes are repeatable and scalable, intermediate deliverables meet expectations, risks are mitigated as expected, and time frames for the larger project can be met within the approved budget.
Remember: The key is to take a phased approach to modernization. Once you have all of these steps, your application-modernization project will be set up for success.