Although the mainframe continues to be a foundational technology for the Fortune 100 and many other large companies, agility has seldom been one of its top attributes. This situation has resulted in many organizations attempting to move off the platform to more “modern” systems. In most cases that effort simply hasn’t worked, yielding computing infrastructures that are less secure, less reliable, less powerful and, ultimately, more expensive.
We believe most organizations are better served modernizing on the platform: using the mainframe’s inherent strengths but making it more fluid and agile for development. Here are five application-development improvements that can achieve this vision.
1. Modernize your mainframe development environment. Most mainframe development still takes place in antiquated “green screen” ISPF environments that require highly specialized knowledge and limit new-staff productivity. Modernizing the mainframe begins with bringing this developer workspace up to date. A modern mainframe workspace should possess modern GUIs and familiar functions that have become de facto standards for other platforms. This user-friendly interface will allow staff at all experience levels to work on all types of applications, regardless of the underlying platform.
2. Better application understanding. The key here is gaining graphical, intuitive visibility into mainframe code and data structures. As mainframe applications have undergone enhancement over many years, they have also become large and complex—as well as poorly documented. The combination of complexity and poor documentation is a major impediment to core transformation goals including agility, efficiency and, perhaps most of all, confidence. Users should have a high comfort level in working with mainframe code, without worrying about uptime, customer experience, performance or security.
The undocumented nature of mainframe applications and data structures often makes enterprise IT highly dependent on the personal knowledge of senior mainframe staff. If this expertise suddenly becomes unavailable, IT may be fearful of making any changes at all. Visualization tools that aid in application understanding enable developers of all skill levels to quickly and easily see interrelationships between mainframe code and other applications and data, enabling them to work more nimbly while avoiding mistakes.
3. Earlier detection of application-quality issues. Unit testing validates the performance of small units of a software program. It’s central to agility, as working with smaller increments of code enables developers to keep pace with the common two-week sprint period. The alternative is building on faulty code, which can become “baked in” and increasingly difficult to undo as the software moves closer to full deployment. This situation can be particularly dangerous for mainframe applications, since they typically support core business processes and transactions for which there is little margin for error. It’s also dangerous for end users with extremely high performance (speed and reliability) expectations.
Although unit testing is common in Java environments, various technical obstacles have thwarted its application to mainframe development. And if it is applied to mainframe development, the process is extremely manual and time consuming. As a result, development teams are reluctant to make changes to their mainframe code because they can’t properly test it and validate they aren’t causing errors elsewhere. But this situation is changing. Mainframe developers unaccustomed to unit testing must learn how to take advantage of the practice and work more iteratively on much smaller pieces of code. Unit testing should also be as automatic as possible and available across all systems that support multiplatform applications, including the mainframe.
4. Identify areas for cost optimization. Gauging code quality is more than a matter of making sure an application performs well in the production environment (although doing so is critical). High quality also means the code is executing as efficiently as possible, maximizing available resources and minimizing overconsumption as it accesses data and interacts with other applications. Optimizing costs is critical for mainframe applications, since they typically support thousands of users, and licensing costs can comprise up to 30 percent of the mainframe total cost of ownership (TCO). Gathering and using operational data continuously can be the key to identifying opportunities for cost-saving code adjustments.
5. Agility-enable source-code management and automate deployment. Source-code management (SCM) systems enable developers to work concurrently on files, merge changes with those of other developers, track and audit changes that were requested and made, monitor bug-fix statuses and create releases. Mainframe SCM systems must foster greater developer collaboration as well as increase the speed and frequency with which new mainframe code drops can be prepared and made available to other developers.
To keep pace with today’s fast-moving markets, organizations must also quickly and reliably get new code into production. Mainframe applications and data increasingly serve as a back-end resource for multiplatform customer- and employee-facing applications, including mobile, web and/or cloud components. Thus, automating and coordinating the deployment of new code—including mainframe code—in a highly synchronous manner is critical.
Organizations must also be able to pinpoint deployment issues as soon as they occur to allow immediate corrective action, such as possible rollback to the previous working code version. This rollback capability is a hallmark of agile approaches and is especially important for mainframe code.
The world—especially IT—has changed a lot in the past 50 years. Initiatives such as agility, continuous integration/continuous delivery and DevOps have grown out of the need to make more software changes more frequently. The mainframe must keep pace. A lack of agility threatens some 55 percent of all enterprise applications that depend on the mainframe, as well as the 70 percent of all enterprise transactions that touch the mainframe.
The steps described above represent a solid plan for modernizing the mainframe. The end state is a de-siloed environment where the mainframe is “just another platform” that can be quickly and appropriately modified as needed, by any developer, to meet the needs of the business.
About the Author
David Rizzo is the Vice President of Product Development for Compuware. He has more than 20 years of IT experience with roles in development, architecture and strategic planning.