The new methods prescribed for developing modern, cloud-native applications are as complex as the systems replacing earlier development tooling and methodologies. Where you once had a code editor or an IDE and a compiler, you now have massive code repositories, containers, container management systems, infrastructure as code and the cloud.
Because of this, it’s widely agreed upon that many if not most organizations have tried to embrace some DevOps thinking into their processes, but for many of them, it’s been kind of a slow go.
Tracy Miranda, executive director of the Continuous Delivery Foundation, explained that microservices and cloud-native technology have changed the game for creating and delivering software. “So even though we’d been delivering software for ages, all of a sudden, it was a different thing,” she said. “And you had to reconfigure your teams, adopt this new software, figure out these new best practices.”
In the CDF’s recently released “State of CD” report, the organization found that only 10% of respondents are able to think about the new, advanced topics in today’s software delivery. The CDF also asked about using feature flags as part of progressive delivery and rolling back changes in a short time when things go wrong, and again, only 10% of the developers responding said they could do that effectively. The report found that for nearly two-third of developers, it takes at least a week to move code from ‘committed’ to successfully running in production.
Chaithanya Kolar, managing director in Deloitte Consulting LLP’s Quality Engineering practice, said it’s difficult to quantify adoption of these techniques, as some organizations do only a piece of DevOps but are happy with that. “There is not a single organization that hasn’t tried using Agile and DevOps practices in their IT development,” Kolar said. The 2021 Deloitte Quality Engineering Trends Report indicates that 73% of the organizations surveyed have adopted some form of DevOps. “As we all know,” he said, “CI/CD is a DevOps tactic. CI/CD emphasizes automation of software process while DevOps focuses on culture. Looking at CI/CD specifically, it is very hard to define the current single state of the adoption.”
Kolar explained that one way to look at the current state of adoption is to break it down into two groups: high maturity organizations and low maturity organizations. “High maturity organizations have efficient development processes and standardized CI/CD frameworks across all value streams,” he said, adding that it is important to note that these organizations not only deploy applications into QA through CI/CD, but also deploy applications into production with minimal to no manual intervention.
These organizations, he pointed out, also focus on automation across the entire life cycle and execute analytics-based tests, using customer feedback in regression and progression tests, for example. On the other end of the spectrum, less mature organizations focus on implementing CI/CD in lower environments and/or across few value streams, he continued. “Releases in production still need release and change control processes that are traditional in nature,” Kolar said. “Automation is still being implemented in pockets and, most importantly, QA teams are not completely embedded into sprint teams.”
As for the future of CI/CD? Kolar said, “A few years ago, CI/CD started off as a method to help continuous deployment, but that definition of CI/CD is long defunct. CI/CD now has QA and security elements to it. We may have seen people refer to the current trend as DevSecOps. In my mind, DevSecOps is changing to be Dev-Infra-Sec-Ops (infrastructure-as-a-service) and will soon be called “Dev-Infra-Sec-Analytics-Ops (including analytics-as-a-service). One day the trend of CI/CD will eventually lead to touchless software development and maintenance. We are on the brink of major efficiency shift in the industry now and AI/ML and LCNC [low code/no code] technologies are enabling this shift.”