While most acknowledge that we must modernize mainframe environments, the fact is that the majority of mainframe modernization projects fail, a major concern and challenge for the CIOs with whom I speak. Every month I encounter situations where we have been brought into a project that is failing for one primary reason, which I call The Last Mile Challenge.
While COBOL, CICS, VSAM and Db2 databases are integral, and the largest/most common parts of mainframe systems, just addressing these technologies doesn’t mean anything if the exotic technologies around these applications are not addressed. Most of the failed projects have such exotic languages in common, including Assembler, Easytrieve, Telon and PL/1.
Among databases, IMS and IDMS are often missed, which must also be considered, not to mention the mainframe schedulers. How often are they the afterthought? And then there are the mainframe utilities, security and performance, which must be addressed from the very beginning. While doing these initial assessments at mLogica, we ask customers to ensure that the mainframe systems ecosystem is analyzed in its entirety. If this assessment is done correctly, everything else in the project falls into place.
Much like second-time surgery, taking the second or third attempt to turn around a failing project or previously failed project is difficult for all parties involved, including our team, due to lack of confidence in the process or experts who may be paying for past sins. A common “solution” that we see in these situations is that the customer outsources the project to a third party, to be maintained by them, which is only a short-term fix—and you are still running on mainframe.
Testing, especially unit testing, is another aspect of the project that shouldn’t be taken lightly. Many testing teams, who are very good at testing for distributed systems, can easily handle black box testing, systems integration testing (SIT) and user acceptance testing (UAT) for mainframe projects. But most don’t understand the specific challenges with respect to unit level testing—for example for a refactoring project from Assembler to Java.
In order to unit test these modules, the tester must have an understanding of how compilers and language translators work, along with an understanding of both the source (Assembler in this case) and target (Java in this case) languages. Just deploying Java testers is a recipe for failure.
To avoid The Last Mile Challenge, we know you must be fully prepared and road mapped before you take your first step.