Strategies, Methods and Toolsets for Modernization
A systematic and organized approach to application modernization.
With this post, I am starting new series about application modernization. I have written about application modernization a number of times in the last four years, but now I’m taking a fresh look at the topic by taking a more systematic and organized approach as I have observed the size and complexity of the topic. What is this systematic approach? Let me explain.
Organization Matters
A useful approach to the topic is to organize the ideas with a focus on strategies, methods and a toolset. Strategies are like a plan of action, policies or blueprints. Methods are specific procedures or systematic ways of approaching modernization. And a toolset might consist of procedures, programs, views, schema and data in support of the task of updating or replacing an application. The toolset elements work together to support the modernization task.
My Motivation to Focus on Application Modernization
When I started as a programmer, we were replacing manual procedures with a computer application that made people more productive and reduced errors while providing faster turnaround of information and reports. There was no previous application to modernize as we were creating the first generation of applications. In my situation, after a few years of application programming, I moved on to other jobs in IT and only returned to application development after more than a 35-year absence. Why did I return?
I returned because I had a brief special project where the focus was two major legacy applications. The goal of the project was to help figure out how to extract the main elements of the application’s business functions so that they could be put into a new replacement application. Generally, the task was about extracting business rules and putting them into a repository. The applications I examined seemed frozen in time. The applications were written in COBOL using VSAM and CICS commands supported by basic debugging tools. It was like I was back at the beginning of my IT career. I wondered how this application could have survived decades seemingly without upgrades of any kind.
Changes to the Code Versus Adding a Layer of Functions
Shortly after my project with the two major COBOL applications, I began to work part time on a project doing research and writing for an API management software company. This company provided a tool to modernize applications from the outside using automatically created Java programs to unlock data and legacy application functionality without changing the application itself. This is an innovation idea, particularly powerful because of the challenges associate with changing existing applications that have grown and evolved over many years. This idea is now an accepted strategy for application modernization.
These two experiences with application related projects were the beginning of my interest in application modernization.
Why Modernize?
Before we explore strategies, methods and toolsets for modernization, let’s consider motivations. What drives the need for application modernization? No doubt, technology change is a major motivation. Consider just three factors.
Database Technology
Prior to the creation of database technology, there were access methods. Conventional access methods, particularity those supporting sequential and indexed access, were used in batch and online applications. When database technology emerged, IT departments quickly saw the benefits of putting key organizational data into databases but hurdles existed in doing so. Using database technology required training, additional computer resources and more of a focus on the business aspects of the applications like the creation and use of data dictionaries. Many organizations overcame these challenges driven by the many benefits of database use but other organizations struggled and some never made the transition.
Mobility
The use of mobile devices in everyday life is setting new expectations for organizations’ business applications. Simply put, there is a need to provide at least some application functionality on mobile devices like tablets and smartphones. If an organization can overcome the technical challenges of uplifting existing applications, the benefits can be significant to both employees and customers.
Internetworking
The widespread availability of network connectivity has provided many opportunities for applications to be used in ways and situations previously unobtainable. In years past, the desktop device was not a computer but a fixed function display device. This desktop display device was replaced by a computer that could emulate the fixed function display as well as run desktop applications. Those computers, when connected to an IP network, evolved quickly, supporting internet protocols and an enormous variety of network-dependent applications running on the World Wide Web.
It’s important to consider these factors as drivers for application modernization as well as the emergence of new and powerful programming languages and innovative approached to developing and sustaining applications.
What’s Next?
In the next post, I’ll focus on a survey of application modernization strategies. A plan of action or policy designed to support application modernization efforts is needed for any renovation effort.