On the surface, mainframe environments and DevOps appear to be at odds. The style and cadence of mainframe application delivery differs from that of web and mobile app development. Often both dev teams are siloed within the organization, impairing potential opportunities for better collaboration and faster delivery of new capabilities. But new consumer expectations, including new customer experiences and the demand for customized, on-demand, mobile content are driving organizations to think differently and determine how to deliver new applications and more releases, faster. These are just a few of the reasons companies are considering DevOps practices for the mainframe—enabling faster, smarter and efficient application delivery.
For many organizations, the intellectual capital in their mainframe applications is required to run the business, such as an insurance company’s unique risk algorithm, a bank’s transaction processing system, or critical government services. Mainframe shops want to find a way to deliver new functionality faster because the business requires it. Maybe the company wants to enter a new market, attract new customers, or react faster to competitive forces. Regardless, their competitive differentiation depends on their ability to get software capabilities to market quickly, get feedback, and do it again. Not surprisingly, that model is challenging for mainframe software teams because mainframe development was not designed to move quickly, nor was the infrastructure designed for modern development practices.
Obviously, organizations can’t move from traditional waterfall practices to DevOps practices overnight. Company cultures have to adjust, modern tools are required, and several bottlenecks need to be addressed. On the other hand, none of that needs to be as time-consuming, painful, or expensive as it has been in the past. In fact, using an incremental approach to improving development, test and software integration enables you to demonstrate value quickly without risk. This approach also helps you not only deliver efficiently, but with a focus on quality and team collaboration.
Delivering faster may be the goal, but going too fast can obscure your knowledge of and ability to properly fix bottlenecks. Moving quickly requires control and balance. Managing faster change isn’t easy, because without governance, conflict and quality concerns will arise. So, finding a pace that enables you to move faster without breaking things requires the right tools and practice in order to overcome bottlenecks encountered along your DevOps journey. Here are six delivery bottlenecks you can anticipate encountering on the mainframe and how to best solve them.
If your organization has two application development teams, one dedicated to the mainframe, the other focused modern application development, consider bringing the two together. In most organizations, the modern team is moving at a rapid, agile pace while the legacy app dev team is moving at a much slower pace. Standardizing on common tooling across teams brings teams together, enabling closer collaboration on projects and more integrated development and testing activities. Mainframe COBOL and PL/I applications can be managed alongside next-generation technologies, including Java and .NET—all using a single integrated toolset. Standardizing on common tooling also enables productivity improvements, sometimes as high as 40%.
Keep an eye on testing capacity, costs
Modern application development requires more flexible, on-demand testing resources to ensure software runs across different operating systems, devices, browsers, and workloads. Mainframe developers, on the other hand, tend to face capacity limitations because mainframe resources are dedicated to critical production workloads. Because those workloads are important, they are given priority over dev and testing cycles. For example, some financial firms tested their code only once per month. DevOps is about enabling more frequent and flexible testing earlier in the process. The business can purchase more mainframe test capacity, of course, but it comes at a cost, which introduces yet another bottleneck to moving faster on the mainframe. Using a flexible, distributed test server environment available in a virtualized or cloud environment can open up seemingly limitless development and test capacity for the testing required. Some modern tools also provide a number of development aids so developers can easily edit, compile, debug, and test applications in an integrated way while working on or off the mainframe. A faster provisioning and test environment improves quality while accelerating the change process and feedback loop.
Parallel development processes
The need for speed means developers must work in parallel with the goal of developing and delivering more software capabilities faster. But in a mainframe environment, coordinating and orchestrating code changes using conventional mainframe configuration-management processes and tools becomes a bottleneck. There is also a risk that changes may break working code, which can negatively affect the business.
Insurance companies are grappling with this exact problem. Many insurance agencies have a common engine that calculates risk and the premiums that result from determining risk. As they offer new products, they’re making changes to their existing mainframe systems. To stay competitive, the business wants to constantly offer new products and services, and the pressure is on IT to update the core system (risk engine) more often. Enabling parallel development teams to work together quickly creates a delivery bottleneck—effective merging and integrating source within the existing mainframe configuration-management system. Traditional mainframe source-control-management (SCM) environments weren’t designed for rapid development at scale. This lack of mainframe SCM flexibility hinders rapid development and also increases the probability of dev rework and waste.
By introducing a distributed SCM that complements the existing mainframe SCM development teams quickly eliminates this bottleneck, enabling them to preserve existing mainframe SCM configurations, processes and routes to production. Mirroring mainframe SCM onto a distributed environment also allows organizations to move confidently at a faster pace while ensuring that mainframe integrity and process are preserved—an important element for mainframe delivery teams.
Change culture without a clash
Changing what is considered to be business as usual requires cultural change that often involves training and ensuring that the right skill sets are in place. Assuming an organization aspires to evolve its culture, it also needs to have the right champions in place to identify the right project as a starting point, if it hasn’t started to embark on this journey already. One key project to focus on for successful DevOps adoption is automation. Bringing automation to as much of the life cycle as is practical is what ensures the success of the transformation. Automation makes it possible to cement the changes necessary to effect lasting improvements in behavior and culture.
Automation also delivers transparency into the development and delivery process making it easier to identify where the bottlenecks and errors occur. Automation allows teams to track, audit and measure the velocity, volume and value of the changes flowing through the system in order to constantly optimize, and improve the process. With this comes the ability to identify success and thwart failure in a way that allows everyone to share in the continuous improvement in software delivery.
It’s a well-known fact that mainframe shops have trouble finding mainframe developers and when they find them, they can’t always keep them. The younger generations didn’t grow up with COBOL or PL/I and are typically more familiar with Java and .NET, because that’s what they learned in school. If a business adopts modern development tools, particularly tools that are integrated with modern IDEs such as Eclipse and Visual Studio, developers can begin using them without having to learn something new from the ground up. Working in a familiar environment not only closes the skills gap, it lowers the barriers to onboarding new talent to support mission-critical business systems.
Start slow and build on success
The adoption of any new technology, process, or practice is best done on a small scale so the organization can learn from it, fine-tune it, and expand it if it’s successful. When software teams gain experience with tools, they tend to move faster, which is good up to a point. But as development and testing continue to accelerate, organizations should be mindful about orchestrating and managing the changes so bottlenecks don’t pile up and ruin efforts to drive a culture of DevOps.
Companies will be relying on their mainframes for a long time because they process and store critical information that is valuable to the business and its success. On the other hand, DevOps practices are becoming table stakes for businesses that want to be competitive.
Today, modern solutions exist to help tackle bottlenecks in many ways by improving developer productivity, providing access to flexible and cost-effective resources, while preserving the stability and integrity of mainframe applications. More importantly, a careful and deliberate approach using better visibility and control over speed will go a long way toward tackling the mainframe bottlenecks you’ll face when adopting DevOps at your company.
For mainframe organizations desiring to deliver more frequently, test more often, and scale to meet new business demand, DevOps could enable faster business change and pursuit of new market opportunities that await.