Modernize Legacy Systems to Enable Full Potential
This is the first of a two-part series on modernization of legacy systems. Read part two. Many topics discussed in this article are independent of platform—mainframe, client-server and distributed systems.
The word modernization is used to describe ongoing innovation that’s worked into an application in periodic projects or more gradually over time. Sometimes applications run for a long time with only business or defect maintenance applied, then suddenly they need to be modernized as they lack important features relating to their user interface or the way that data management is handled.
Overview of Legacy Systems
Legacy systems are sometimes called “systems of record.” They could be running on mainframe, client-server, multi-tier distributed systems or a hybrid combination of different architectures. To some, the phrase legacy system is a pejorative term. To others, a legacy system has the advantage of being an incumbent system that’s running and providing value to the organization.
What Is Modernization?
Modernization can mean different things to different people in IT. Legacy or software modernization refers to the conversion, rewriting or porting of an existing application to a modern computer programming language with new libraries, protocols or hardware platform. The goal of this transformation aims to retain and extend the value of the past software investment through migration to a new platform. This is one way of describing modernization where you make a significant change in the context of a one-time project.
Other definitions involve leaving the legacy platform in place and providing updated interfaces like supplementing CICS maps with a web front end or using modern API software to create an application that transforms the data in the legacy application without any changes to the application itself. Another incremental modernization approach would involve selective replacement (e.g., swapping convention file systems with a database management system). Doing this opens the door to many advantages that derive from using a database versus a file system and you don’t have to replace all the files.
Many companies have embraced the idea that applications should be both maintained and modernized as part of normal day-to-day operations. These companies have money and people allocated to a given application set. They distribute resources between fixing the application and making other necessary changes, leaving time and assets for keeping up with strategic needs. This has become a common practice for companies that are balanced in their approach and are trying to avoid plunging into a large-scale technology migration.
Benefits, Strategies, Risk and Cost
Modernization should be an ongoing activity in the lifecycle of a system or application. Changes in business practices cause changes in an application, as does the rapid evolution of technology. Careful planning is required to balance routine change and strategic initiative but this isn’t too much to expect for a mission-critical application.
One benefit of modernization is continued satisfaction with an application after it’s updated with a web interface or application on a mobile device. Without these improvements, user satisfaction could decline. Improved productivity is also a benefit of modernization. The use of mobile devices with an application can mean that a user can take a tablet onto the production floor to check inventory, with a customer on the phone, without having to go back to their desk to enter transactions.
Today, many companies are embracing process improvements like continuous integration and deployment methods. These practices support modernization changes like adding a new capability or changing a function in a parallel implementation. In many ways, modernization is a good fit for these new IT processes making it possible to integrate modernization with the other ongoing activities.
There’s risk in making change, both maintenance and modernization. There’s also risk in not embracing new technology. When a company’s competitor is building applications for smartphones and the company doesn’t have a similar initiative, there’s a risk of loosing a future customer base that has significant digital expectations. For many industries, customers with modern digital preferences are highly desirable, high-income users.
Ongoing modernization is less costly than replacement, as it preserves the function in the current system. Certain kinds of modernization (e.g., embracing automated testing and deployment) can reduce overall costs and improve application quality.
Challenges and Areas of Focus
When making a significant modernization change to an application, an incremental approach is least disruptive and should be used whenever possible. Often, this means breaking up a large project into smaller units that can be piloted, or run in phases or in parallel with the existing functionality.
For modernization, what should be the focus? A place to start is updating the user interface, which often means utilizing the web and making use of mobile devices. Another area is data modernization, which might involve converting from files to databases and layering other functionality like data replication. Another area for modernization is function modernization, which has to do with enhancements like packaging application elements into components for use as services.
Another focus for modernization could be rooted in making good use of enhancements in the current software technology that’s supporting the application. If the application is written in COBOL, look at one of the latest release like Enterprise COBOL for z/OS Version 5. This release, among other features, makes use of the latest z/Architecture and performance optimization, delivers XML processing enhancements for easier web interoperability, and increases compiler limits to handle larger data items and larger groups of data and to improve application exploitation of system resources.
Like COBOL, CICS and IMS have significant functional enhancements in each release that should be put to use by applications as part of ongoing modernization. Making fuller use of the middleware that is foundational to the application has the potential for significant gain that on balance may not be difficult to implement.
The next article explores in detail specific tactics to use within specific areas, including updating the user interface, data modernization, function modernization, process modernization, and more fully using language and middleware enhancements.
Like what you just read? To receive technical tips and articles directly in your inbox twice per month, sign up for the EXTRA e-newsletter here.
comments powered by