Ensuring successful application modernization
Over the past few years, I have spoken with hundreds of mainframe users about their modernization objectives and experiences. They all have significant investments in the existing applications that run the core functions of their business. Those applications have evolved over many years and comprise a vast amount of domain knowledge about their business. However, the developers who know those applications and the technology they are built in are either already gone or retiring soon. At the same time, they need to provide access to those core application functions in new ways and through new interfaces to take advantage of emerging opportunities. Consequently, they are faced with the challenge of how to move quickly enough to stay competitive without putting their business at risk.
In talking with these customers, I have learned a lot about what makes the difference between success and failure in modernization. Here are some of those lessons:
Reuse, don’t rewrite
Everyone is dealing with limited resources and therefore must be careful to invest in those projects that provide the most value. If the application code you are currently running is reliable, proven and does the job, why spend valuable resources rewriting it? Instead, consider wrapping the functions in the current system with web services so they can be called programmatically. Those web services can then be made available to new mobile, web or machine to machine interfaces. Once you have exposed individual functions as services, you can change workflows, update user experiences and interact with other systems.
Focus on user experience not just user interface
When modernizing the application, make sure you are thinking about how the user will be performing the function in the new technology environment. If they are accessing the system while they are on-the-go via a mobile device, might that change the workflow? Could the function currently being performed by a user be performed programmatically by the machine instead? Would it be helpful to integrate plugins from others into the application (eg. Maps, Weather, Currency Conversion, etc.)
Use the right tool for each modernization challenge
Different modernization challenges require different approaches. For example, if you just need mobile access to your existing applications and you’d like that access as quickly as possible, then mobile terminal emulation might be the right solution. It’s fast and low cost. Or, if you have thousands of green screens that you want presented instead as web pages but only a small fraction of those screens are used on a regular basis, you might want to use different tools for the frequently used screens and the rarely used screens. An automatic transformation tool can transform the rarely used screens very quickly and at low cost while a more sophisticated tool can be used for the frequently used screens to provide a leading-edge user experience.
Automate, automate, automate!
As in every other area of business, technology can bring efficiencies to IT by automating manual functions. Application management is a prime potential target for automation. This is where modern DevOps tools can provide significant benefits. DevOps tools allow you to manage complex multiplatform applications with a minimum on manual effort. You can deploy changes, scale up and scale down the number of servers, and create test environments very rapidly.
These are just a few of the lessons I have learned from working with customers on their modernization projects. If you’d like to learn more, check out our webinar, “Ensuring Modernization Success for Host-Based applications.” We go live November 14th at 11am EST!