Legacy Modernization Best Practices
Part 1 of a 6 Part Series
What is Legacy Modernization?
Legacy systems play an enormous role in most large organizations. Legacy systems were designed to be very robust. Many systems are still meeting the functional requirements they were built for and are performing satisfactorily. Others have become outdated and no longer meeting the organization’s needs. This mixed scenario is very common today – the speed of business is increasing rapidly; CIOs and Enterprise Architects are under tremendous pressure to keep up with developments in mobility, security, and cloud infrastructure as agile development philosophies continue to evolve. Also, IT organizations are also facing ongoing pressures to improve customer service, provide quicker access to information, and increase profits. Modernizing legacy systems to meet customer demands and take advantage of the changing technology landscape is critical to prevent losing the organization’s competitive advantage and market share.
A key strategy to meeting these business demands is being able to deliver both continued use and real value from your legacy applications. Legacy modernization is about using and reusing applications, taking past strengths and combining them with the opportunities that current and future technologies present. Legacy modernization may be defined as converting aging applications to more modern architectures.
Having a comprehensive understanding of the application’s details and its interrelationships with other systems is a critical step in performing a legacy modernization. A key challenge for many organizations is a lack of current application documentation; if any exists at all. It’s tempting to move forward without it.
Organizations also need to consider the challenge of breaking free from potentially decades of architectural dependence. It’s critical that the modernization team not only focus on the technology side of the decisions being made but also recognize the impact that the changes will have on the people and processes used to deliver and operate applications.
Follow these Legacy Modernization Best Practices to minimize your risks.
What are Legacy Systems and Applications?
A legacy system refers to an old technology, computer system, programming language, or application software. The implication of a legacy system is that it is large and difficult to modify or replace.
A legacy application may be defined as any production enabled software application, regardless of the programming language it is written in, computing platform it runs on, or length of time it has been in production. These applications contain the data and business rules that make up the intellectual property required to run the business.
Best Practices for Modernization Success
Day One Executive Buy-In
The potential for success or failure all starts with having executive buy-in from the very start. It’s essential that the organization’s executives fully understand that cross-functional resources may be involved in the modernization project due to the scope, reach, and risks involved with modernizing a legacy platform. The likelihood of the project falling behind the planned timeline increases drastically without executive buy-in, understanding, and support for the proper prioritization and use of tasks for everyone impacted by the project. Having them onboard with the project from day one will serve the modernization team well in eliminating barriers and getting the resources needed for success.
Keep stakeholders involved throughout the modernization project with regular communication and engagement. Start by setting up interactive communication points such as newsletters, meeting minutes, progress reports, and management committees. Keep project momentum and stakeholder involvement going with formal recognition processes for success by IT resources and structured accountability at every decision-making level. Ultimately, these activities will help ensure your change strategies, including your communication, transition, and training plans, are executed as planned.
Discovery and Understanding
Most legacy systems have been worked on by many developers over the years. As the systems have been handed off from one person or team to the next, the documentation of features and functional relationships typically wasn’t made a priority and what does exist is out of date. Starting with a solid understanding of the code and creating updated documentation will help your organizations make better modernization decisions overall.
By doing a thorough legacy application portfolio assessment and analysis, organizations inevitably uncover vast amounts of duplicated functionality and/or dead or unused code. This type of discovery often results in significant reductions in the complexity, scope, and cost of a legacy modernization project.
Why do a thorough assessment and analysis?
A 2013 Gartner survey of CIOs and other IT leaders in the U.S. insurance industry states that only 18% of modernization projects were completed within the originally planned time frame, a direct result of poor legacy application understanding.
Also, your ability to plan for and implement a successful legacy modernization project is directly correlated to your depth of understanding of the source environment and its complexity and the breadth of influence of the business rules within the legacy system. Having a detailed, accurate understanding of the inner workings of the project from the start will enable you to set more realistic timelines, understand the impact of scope and time on the level of effort required, and reduce the potential for cost overruns.
It is also important that organizations do not simply take a symmetric view of modernizing their application portfolio. While certain pieces of the portfolio may be modernized quickly and with minimal changes, others may be much more complicated. The organization may have to consider other options to achieve the required functionality on a case by case basis.
For example, replacing legacy CRM, reporting, or HR application with a COTS package eliminates the need for code migration or re-architecting of the application. Understanding the specific functionality that the legacy application enables an organization to locate and plan the conversion to the COTS package.
Pinpointing Your Target
The information obtained during an Application Portfolio Assessment helps define the complete destination architecture. While organizations may think they want to go with a Microsoft .NET on Windows or Java in a Unix or Linux environment, the definition of the destination architecture, in line with the organization’s strategic enterprise architecture strategy, and resulting mapping of the old applications and operational issues to this environment, will help identify gaps in required capabilities and the technology environment preferred.
In addition, looking at the performance differences in respect to the legacy and destination architecture selected in an important consideration. It is important to prioritize performance with attention to redundancy, recovery, and database availability. You want to provide the same or better apparent user response, regardless of how you achieve it.
Understand Operational Consequence
The modernization efforts you take shouldn’t have an operational impact on users. The process should be operationally transparent to users throughout and after the completion of every step to prevent any negative perceptions from developing about the project’s viability amongst internal staff. It is also important to maintain a continual data conversion strategy throughout the modernization that allows new features to be developed to further minimize any possibility of an operational impact on users.
Commitment to Timeline
Everyone involved in the modernization project should understand that change requests made during the late stages of your project could significantly delay or even derail it. Procedures need to be in place for ensuring any requests are aligned with critical issues and are concise. Any requests that can be completed after the project is launched without negatively impacting operations and budget should be added to a backlog for future improvements.
Thoughtful, Exhaustive Testing
Testing is critical to the success of every modernization project. It should start early on in the process and involve end users. Cross-departmental representation reduces your risk when developing test cases and scenarios for integration and system testing. A cross-departmental team can help to identify and solve any unexpected integration challenges, functional gaps, and underestimated efforts.
Contingency and Communication
Planning. Planning. And more planning. Weekly meetings are critical for the modernization team as you near the transition – this includes the operating team, vendors, testing teams, and support teams. These meetings should cover scheduling, risks, and other issues until everyone is comfortable. Having everyone on the same page is essential to the project’s success. When everyone is aware of what’s happening, when it’s happening, and is ready to provide users with support when the phone starts ringing and respond promptly, they feel like a real team, and everything goes more smoothly.
The Force Multiplier
You need to be prepared with a plan on what to do with the savings realized from the modernization project once everything is up and running. When you go from utilizing eighty-five percent or more of your resources to maintaining your systems to 50 percent or less, having a plan on how you’re going to invest those savings in additional modernization or new development efforts is critical to maximizing your overall results.
Many organizations have issues dealing with the savings. Some have a hard time keeping track of how the savings are being spent and some fail to fully implement reinvestment plans. Keeping a focus on the future never stops being important.
“77% say new application development is vital to their agency’s ability to meet mission objectives.” MeriTalk, “PaaS or Play? Cloud’s Next Move,” 11/20/13
Take the Steps for Success
Ready to start on the path to modernizing your software with a practical approach? Using an Agile modernization approach with proper planning and the right people on your team will put you on the path to success. The development team at QAT Global is experienced in modernizing legacy applications and working with clients who have complex environments. Put your next modernization project on the path to success, start the conversation with our development team today.
Interested in learning more? Start the conversation today.
Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6