One of the biggest challenges in modernizing legacy applications is figuring out the program call chain and the functionality of various called programs. Scanning the source code alone is not enough to understand the call chain and the full scope of the application. In this blog, I'll share a few examples of issues customers have encountered during their modernization journey.
Program Mapping
We have seen many customers using a single common program name (Example: APLCM500) in the source control (SCM), however the module is link-edited differently for batch vs online. In the example below, the batch program APLBT401 calls -> APLBT500. But when you look for the source APLBT500, it will not be found!
Dynamic Program calls
Another pattern we have identified is that all batch jobs call a single assembler program used for checkpoint restart, with the program name passed as a parameter.
Another common scenario is when the name of the called program is stored in a variable and its value is retrieved from a database or a VSAM file. In such cases, it's impossible to determine the list of called program names simply by scanning the source code.
Summary
The issues mentioned above represent just a small subset of the challenges we've encountered during modernization. Without understanding the full call chain, it's impossible to fully comprehend the legacy system. In conclusion, scanning the source code alone is not sufficient for a successful modernization. Using CloudFrame can help overcome many of these challenges!