Cracking the Code: A 5 Step Approach to Successful Application Modernization
Modernizing legacy applications can be daunting, especially since legacy applications tend to grow in complexity over time and have multiple dependencies on other enterprise systems. Cracking the code on application modernization has emerged as one of the top priorities for companies - 92% of enterprises plan to modernize or are already in the process of modernizing critical legacy applications, based on recent research. Yet, 4 out of 5 modernization efforts fail along the way. Culprits of failed modernization span the gamut - from misaligned expectations and costly strategy missteps to hard-to-find resources and tools that can provide the right knowledge and capabilities.
While these realities are well known to those who have been in the throes of application modernization for years, the need to modernize is as urgent as ever. Indeed, as this Forbes article asserts, enterprises and government agencies are “grappling with the need to digitally transform their businesses to deliver new and improved customer experiences, reduce workforce costs, and expedite critical business processes”.
As the saying goes, all seemingly intractable problems can be untangled by breaking them apart in ways that still make sense and tackling them in smaller doses. In fact, mapping out modernization projects in phases empowers every organization on its modernization journey to achieve success without drowning in the time and resource costs of failures. By thoroughly reviewing systems, zeroing in on specific modernization goals, setting appropriate expectations, and then managing these expectations at each step, IT teams can finally crack the code of successful application modernization.
Here’s a tried-and-true modernization roadmap, outlining the critical steps:
Step 1: Align on business goals and take stock of your organizational constraints
When you start the initial planning for your modernization project, work with key stakeholders on what the business goals are that the modernization project needs to address. Then, take stock of your constraints: people, processes, and budget. Consider who needs to be involved during the process, such as business and technical stakeholders, and resources that will be required for the project.
More questions to consider include: What is the timeline for modernization, and how quickly do you need to show results? Do you need to embark on a major transformation initiative, or do only certain systems need to be addressed? How will you measure the success of the project? What is your available budget? Taking stock of your initial requirements and constraints will help you identify key considerations as you determine your ideal path to modernization.
Step 2: Assess your legacy applications, including critical dependencies
The next step is to assess your legacy applications thoroughly. Review the source code and generate an up-to-date list of documentation artifacts to understand the logic, complexity and dependencies within the applications. This documentation process will reveal the software’s complexity as well as dead or redundant code that is surely lurking inside. The output at this stage is a series of reports, diagrams, and logic representations that provide a detailed view into the composition, database access details, and logic of the applications processed. This step also allows you to see how you could break up the modernization process across multiple applications, i.e. which modules have dependencies and which don't.
Using manual methods, the effort required for documentation and analysis of your applications can be significant. This is where your team can benefit from intelligent automation. There are tools out there that can automate the reverse engineering of your source code and produce documentation artifacts for you. For example, the Intellisys platform reduces the time to create documentation by 90% or more using its patented technology. This documentation provides both graphical and non-graphical artifacts allowing both technical and business analyst resources to dive deep into understanding the inner workings and complexity of their systems and using that knowledge to plan for modernization.
Step 3: Determine your modernization approach
Every enterprise system is unique, so determining the type of modernization you want to implement for each system that needs it is a vital step in the modernization process. The most common modernization options fall into three broad categories - Replace, Rebuild or Refactor. Here’s a quick decision table to help you choose the right modernization path:
- Replace: Migrate the legacy system to a modern platform: In this case, your team would extract the business rules from the current application and move the software to a modern platform. If the application is being replaced, any extracted rule that is not present in the COTS product may be exported to that product for implementation. Considerations include if there is a COTS product out there that meets your business needs and goals.
- Rebuild: Re-writing the application in a modern language and architecture: In this case, modernization means using a newer programming language and relevant architectures and removing years of technical debt that has likely built up, making the application easier to maintain and update. Extraction of your applications’ business rules is critical with this path. If you are rebuilding the application, the extracted rules can be included in the specifications of the target application to be developed.
- Refactor: Optimize and migrate your existing source code to a modern language. The key step here is to be able to optimize the source code prior to transformation so that years of accumulated technical debt don’t go into the modern version of your application. This will also ensure that the target code meets performance requirements, is free of vulnerabilities, and is maintainable and scalable.
Determine the approach that best fits your organization's needs and integrate that approach into your planning. Learn more about your modernization options through the lens of “The 3 Rs” here.
Step 4. Revise expectations
At this point you should have a clear understanding of what it will take to complete your modernization project. Regroup with the key stakeholders and revise their expectations based on the revealed complexity, risks, and resources (both internal and external) needed to successfully complete the project. Include revised cross-organizational dependencies, budget projections, and timeline.
Rewrite the deliverables and timing for each phase of the modernization process. Mapping out your current state, available resources, and expectations will help you avoid mismatches between capabilities and expected outcomes- a common pitfall in application modernization projects. If you plan on issuing a formal request for proposal (RFP), detail these expectations in the RFP.
Step 5: Start small and test before you scale
Create a small, clearly defined project to test your process, such as modernizing a single component of the application. Apply your modernization process to this small project to validate your planning, communication, and expected results. The test project will help you identify any flaws in your process and enable you to course-correct before embarking on a full-scale modernization project. Take what you’ve learned, integrate it into the larger plan, then run another test to confirm the process works as you planned.
Conducting small, quick tests will verify which processes work and are repeatable and will save resources, pitfalls, and hidden risks in the larger project. It may also help you confirm whether your vendors are a good fit for the initiative. If a vendor fails to perform as expected during the test project, use it as an opportunity to clear up any requirements, or to consider finding a new vendor.
Throughout the planning and execution phases, embrace automation over manual processes
Automation enables IT teams to implement modernization initiatives on a larger scale, consistently, and without errors, at a fraction of the cost and time that manual processes take.
Automation also enables organizations to more quickly test and understand if a modernization approach will meet their needs. Organizations can iterate and adapt prior to starting a large-scale effort, leveraging a “pilot” phase. Once this evaluation is done, the rest of the phases can be more successful because you have the learnings from the proof of concept step.
Consider these automation benefits: a multi-billion dollar investment firm turned to Intellisys to automate the reverse engineering and migration of an AS400 COBOL transactional system to Java and PL/SQL. To start, they were able to extract meta-data from 151,000 lines of COBOL code in two weeks, which, in turn, empowered the organization to analyze and optimize the extracted meta-data in four weeks. At the end, 80% of the COBOL code was transformed automatically, with only 20% of the code requiring manual completion.
To learn more about how EvolveWare can help you up on your successful phased journey to application modernization, reach out to us or schedule a demo.
Read more of our blogs here.