CI Tools and Best Practices in the Cloud

Continuous Integration

Subscribe to Continuous Integration: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Continuous Integration: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Continuous Integration Authors: Jason Bloomberg, Yeshim Deniz, Elizabeth White, Pat Romanski, Liz McMillan

Related Topics: Agile Digital Transformation, Continuous Integration

Blog Feed Post

Go with Flow: Unit Testing, DevOps, and the Mainframe

If Mark Twain were a software developer, he’d surely define insanity as continuing to follow the aging waterfall software development methodology. After all, most waterfall projects fail in one way or another, from running over budget to missing deadlines to delivering poor quality results.

To address these issues, Agile methodologies like Scrum have been around for years – and yet, many attempts at implementing Scrum still involve iterations that feature a fixed sequence of steps.

This ‘Scrumfall’ approach falls short of delivering the promised benefits of Agile. Organizations may say they’re Agile, but they’ve fallen into the trap of implementing a mini-waterfall process rather than implementing ‘true’ Agile.

Today, as organizations move to DevOps, Scrumfall becomes a risk factor that can sink such a move. More than a software methodology, DevOps represents a cultural shift toward increased collaboration, depending in large part upon better automation – and Scrumfall can stop it dead in its tracks.

However, teams that get DevOps ‘right’ are able to achieve continuous integration and continuous delivery (CI/CD), delivering software on an ongoing basis, as fast as the business requires.

If those organizations have mainframes, however, both cultural and technical issues stand in the way of this CI/CD goal of DevOps. Many such organizations suffer under the burden of Bimodal IT, where the mainframe group is relegated to the ‘slow’ mode, inevitably following waterfall with its concomitant limitations.

The siren song of DevOps, however, is drawing mainframe leadership away from this Bimodal trap, as mainstreaming the mainframe is critical for the success of digital transformation initiatives at any company that depends upon the platform to run their business.

Improving Upon ‘Scrumfall’

This mainstreaming of the mainframe faces additional hurdles, in particular, the challenges of Scrumfall. The approach that is shaping up to address these challenges, ‘Flow Agile,’ is becoming increasingly popular.

Flow Agile is not a formal methodology, and in fact, its informality is by design. It eschews the dogmatic approaches of both waterfall and Agile, instead favoring the Lean notions of avoiding waste and continuous improvement.

In practice, teams following Flow Agile realize that the various steps in the software lifecycle – design, develop, test, deploy, etc. – are not discrete steps in a sequence, but rather loose clusters of activities that anyone on the team may undertake at any time as appropriate to the goals of the software.

Automated Unit Testing Essential to Flow Agile

Needless to say, the tooling such teams use must reflect this practice, especially when the team is mainstreaming the mainframe. Automated unit testing, for example, is a prime example.

Unit testing focuses on small portions of code in isolation, allowing team members to catch errors and anomalies quickly and efficiently.

Because today’s code is typically connected to other bits of code, either as objects within a single execution environment or via APIs across such environments, automated unit testing must virtualize such external interactions in a way that the automated tests can adequately cover the code in question.

In a heterogeneous environment, say, when mainframe application code must interact with code on distributed platforms both on premises and in the cloud, the ability to unit test consistently across all such environments is essential to the success of the DevOps effort overall.

Remember, with Flow Agile, testing is no longer a step in a sequence of steps. Rather, testing is a set of activities that various members of the team may undertake at different times throughout an effort as appropriate.

Unit testing is one of the most important of these activities, as long as all relevant code is available to automated unit testing. This context for unit testing explains why Compuware acquired XaTester from Xact Consulting. Compuware already offered Topaz for Total Test, an automated unit test suite for COBOL-based batch applications.

XaTester brings PL/I, assembler, CICS, and IMS into the Topaz fold, thus extending the reach of Compuware’s unit testing capabilities to the vast majority of mainframe programming environments.

Coupled with Topaz’s integration with DevOps tools including Jenkins, SonarSource SonarQube, and Compuware ISPW, DevOps team members can now perform automated unit testing across environments as a seamless part of their DevOps automated toolchain-supported workflows.

The Intellyx Take

Unit testing is an essential part of any software methodology, including both waterfall and Scrum as well as Flow Agile – and furthermore, automating unit tests will improve the results and reduce the time of any testing regimen.

As a result, the combination of Topaz for Total Test with XaTester can provide value for both DevOps and more traditional efforts alike.

It’s important to remember, however, that as a cultural shift, what is and is not DevOps is not a black-and-white distinction. Teams can be more or less collaborative, more or less Lean, and leverage automated tooling to a greater or lesser extent.

Any progress toward the DevOps CI/CD ideals is likely to improve the business results of the software development effort, regardless of whether an organization is full-blown DevOps or just getting started on its DevOps journey.

For teams working in heterogeneous execution environments, in particular those with mainframes, ensuring a level playing field for all team members avoids the Bimodal bottleneck that can throttle progress with DevOps and digital transformation overall.

Automated unit testing is an essential part of this level playing field. Team members should be focusing on delivering business value, not on the intricacies of manual testing, or the complexities of testing across environments. Everybody knows that testing is essential, but it certainly doesn’t have to be manual.

Copyright © Intellyx LLC. Compuware is an Intellyx client. At the time of writing, none of the other organizations mentioned in this article are Intellyx clients. Intellyx retains full editorial control over the content of this paper. Image credit: Konstantin Malanchev.

Read the original blog entry...

More Stories By Jason Bloomberg

Jason Bloomberg is a leading IT industry analyst, Forbes contributor, keynote speaker, and globally recognized expert on multiple disruptive trends in enterprise technology and digital transformation. He is ranked #5 on Onalytica’s list of top Digital Transformation influencers for 2018 and #15 on Jax’s list of top DevOps influencers for 2017, the only person to appear on both lists.

As founder and president of Agile Digital Transformation analyst firm Intellyx, he advises, writes, and speaks on a diverse set of topics, including digital transformation, artificial intelligence, cloud computing, devops, big data/analytics, cybersecurity, blockchain/bitcoin/cryptocurrency, no-code/low-code platforms and tools, organizational transformation, internet of things, enterprise architecture, SD-WAN/SDX, mainframes, hybrid IT, and legacy transformation, among other topics.

Mr. Bloomberg’s articles in Forbes are often viewed by more than 100,000 readers. During his career, he has published over 1,200 articles (over 200 for Forbes alone), spoken at over 400 conferences and webinars, and he has been quoted in the press and blogosphere over 2,000 times.

Mr. Bloomberg is the author or coauthor of four books: The Agile Architecture Revolution (Wiley, 2013), Service Orient or Be Doomed! How Service Orientation Will Change Your Business (Wiley, 2006), XML and Web Services Unleashed (SAMS Publishing, 2002), and Web Page Scripting Techniques (Hayden Books, 1996). His next book, Agile Digital Transformation, is due within the next year.

At SOA-focused industry analyst firm ZapThink from 2001 to 2013, Mr. Bloomberg created and delivered the Licensed ZapThink Architect (LZA) Service-Oriented Architecture (SOA) course and associated credential, certifying over 1,700 professionals worldwide. He is one of the original Managing Partners of ZapThink LLC, which was acquired by Dovel Technologies in 2011.

Prior to ZapThink, Mr. Bloomberg built a diverse background in eBusiness technology management and industry analysis, including serving as a senior analyst in IDC’s eBusiness Advisory group, as well as holding eBusiness management positions at USWeb/CKS (later marchFIRST) and WaveBend Solutions (now Hitachi Consulting), and several software and web development positions.