Of the many ways this pandemic has shifted resources online, financial transactions are among the most critical. With the use of cash and checks grinding to a halt, transactions generated with our devices are increasing, and most of them are being completed on a mainframe. It’s not hyperbole to state that mainframes—the systems of record for major banks, investment houses and insurers—are helping to keep the world economy resilient, all without a single glitch.
Will the increases in online transactions be temporary while sheltering and social distancing are in place or does this mark a critical inflection point in the market? There are already signs that the online uptick is here to stay. J.D. Power research says approximately one-third of retail banking customers plan to increase their use of online and mobile banking services post COVID-19, with this percentage expected to increase with the duration of the crisis. It’s likely similar increases in online transactions will take permanent hold with commerce beyond finances and retailing.
Bringing the Mainframe and Digital Transformation Together
The main beneficiaries of this trend will be those organizations that have committed to better serving their customers through digital means and include their mainframe assets in their necessary digital transformation. While the mainframe is the most securable, reliable, performant and scalable platform, mainframe software development and delivery have traditionally followed slow waterfall processes, further hampered by archaic tooling. New and growing workload demands will require organizations to apply Agile and DevOps methodologies to their mainframe code and data to increase their overall agility. What are the keys to doing this?
Articulate Your Vision and Identify Impediments: Articulating your vision starts with outlining your goals. Maybe you want to improve velocity (compressing the time between business need identification and code in production), agility (the ability to make more frequent changes to application code), efficiency (automating time wasted on manual execution of common repetitive tasks) and integration (better coordination of code changes across platforms). Or perhaps an important strategic focus for your organization is empowering technical staff with mainstream skill sets to assume responsibility for mainframe DevOps.
The key to achieving these goals is to identify your organization’s unique constraints – these could be tools that lock you into slow, waterfall processes; entrenched habits that fail to place sufficient emphasis on speed and collaboration; or lack of funding. Once an organization knows where it wants to go and what it needs to do to get there, it can start crafting a rational, credible transformation road map without compromising the reliability and stability of core applications.
Modernize Your Mainframe Development Environment: The “green screen” ISPF environments of most mainframe shops require highly specialized knowledge and problematically limit new staff productivity. Modernizing the mainframe begins with modernizing the developer experience, which should feature a user-friendly interface that allows staff to toggle easily as they work on both mainframe and non-mainframe applications. The modernized mainframe user interface should also support integration with best-of-breed DevOps solutions to help improve the quality, velocity and efficiency of mainframe software development.
Automate Testing: According to a Vanson Bourne survey, 90% of application development managers say that automating more test cases could be the single most important factor in their success as the pressure to accelerate innovation increases. Yet currently only 7% of organizations automate the execution of test cases on mainframe code.
Technical obstacles have historically prevented the kind of “shift-left” automated testing that is commonplace in Java from being applied to mainframe development. Luckily, these obstacles have been removed and reliable automated unit testing can become a mainframe reality. Once unit testing is automated, organizations can extend automation to functional testing (to validate the implementation works as specified) as well as integration testing (evaluating if the collaboration between two or more programs works as expected) and ultimately improve an organization’s ability to accelerate innovation.
Empower Developers: As mainframe applications have been expanded and enhanced over many years, they have typically become large and complex. They may also not be very well-documented. This combination of complexity and poor documentation is a major block to core transformation goals—including agility, confidence and efficiency. The undocumented idiosyncrasies of some mainframe applications and data structures tend to make enterprise IT highly dependent on the personal/tribal knowledge of senior mainframe staff. Worse yet, if a seasoned mainframe developer is no longer available, IT may be fearful of making any changes at all.
Empowering developers means more than modernizing the mainframe development environment, as discussed above; it means making it much easier for any new participant/contributor to quickly “read” existing application logic, program interdependencies, data structures and data relationships. This enables them to work on even the most unfamiliar and complex systems with clarity and confidence—in essence, to be less reliant and more independent. It also means empowering developers to take on jobs that may have traditionally been done by a testing team, e.g. unit testing, or a DBA, e.g. test data setup to remove bottlenecks and speed delivery.
Training: Once an organization has the right development environment in place, it can start shifting its process from a traditional waterfall model with large sets of requirements and long project timelines to a more incremental model. The move from large-scale waterfall projects to Agile represents a significant change in work culture for most mainframe teams. Training in Agile processes and work culture is really a must.
Technical leadership roles and product owners, in particular, need in-depth training and coaching. All team members should have at least some formal introduction to basic Agile concepts. To ensure that mainframe development is not left behind, organizations should consider pairing mainframe developers with agile-experienced developers from other platforms.
Include Mainframe Code in All Aspects of the DevOps Toolchain: If an organization fails to include mainframe code in all aspects of the DevOps toolchain, there will always be one code component (mainframe) that slows down the rest of the DevOps process. To truly enable DevOps and Agile on the mainframe, mainframe code must integrate easily and seamlessly with other tools in the end-to-end toolchain, including Jenkins, Digital.ai, Slack, CloudBees and others.
Among the processes that must be integrated and automated include source code management (SCM). The shift from waterfall-based SCM to Agile-enabling SCM is a pivotal moment in mainframe transformation—an absolutely essential shift if an organization’s goal is to increase the speed and frequency of new mainframe code drops, optimize developer productivity and simplify end-to-end management of the software development life cycle.
Organizations also need to be able to pinpoint mainframe code deployment issues as soon as they occur, so immediate corrective action can be taken. If such corrective action does not produce its expected effect, there must be the ability to quickly and automatically fall back to the previous working version of the application. This automated fallback is, in fact, a key enabler of rapid deployment and particularly important for mainframe code, since it is the primary means of mitigating the business risk associated with the promotion of mission-critical code.
Enable Coordinated Cross-Platform Continuous Delivery: Mainframe applications and data increasingly serve as a back-end resource for multi-platform customer- and employee-facing applications that include mobile, web and/or cloud components. DevOps teams therefore must be able to fully synchronize the delivery of new, approved code across all platforms.
This is the desired state of enterprise DevOps: a de-siloed environment where the mainframe is “just another platform” that can be quickly and appropriately modified to meet the needs of the business.
From the changes in the daily commute to the way we buy food, the COVID-19 pandemic is likely to exert long-lasting, sweeping changes in the ways we live and our preferences. As more people become accustomed to conducting more of their day-to-day activities online—including banking but so much more—mainframe development will be required to exhibit higher levels of agility than ever before. The tips described here can help organizations transform their venerable mainframes into platforms for innovation and become an autonomous digital enterprise that can thrive during seismic changes. After all, those who do this the best are likely not to be hampered by COVID-19’s enduring imprint on society.