The move to the cloud, the introduction of new AI technologies, and the evolution of DevOps practices are radically altering the software development landscape. As the speed of innovation increases and customers begin to expect more from software companies, releases need to be quick and as bug-free as possible.
Release automation is an area that has developed to help businesses meet these needs, and it is becoming increasingly more necessary.
The growing adoption
According to John Kodumal, CTO and co-founder of the feature management platform LaunchDarkly, the adoption of release management tools has been steadily increasing over the last few years.
“We did a report called ‘The State of Feature Management’ and it showed that 70% of respondents to the report viewed feature management as mission-critical for them, and we also found that 77% of teams who prioritize feature management as an initiative are categorized as high performers,” Kodumal said.
Jim Mercer, research VP of DevOps and DevSecOps at IDC, explained that demand for acceleration and the increased frequency of software releases have been driving factors behind this uptick in adoption.
“As DevOps teams mature and improve their release frequency, release automation is essential for release to ensure the management and tracking of all the different releases,” said Mercer. “Further, the software may need to be released on-premises or across multiple cloud environments. So, it is widely used.”
The market is evolving
Kodumal explained that a current trend in the market is a heightened connection to the idea of product-led experimentation. This type of experimentation is based on the idea that every release should be measured against things such as operational impact, on top of standard testing.
Product-led experimentation is quickly on the way to becoming the standard for feature management tools, Kodumal said.
Shawn Ahmed, CPO at the enterprise software delivery platform CloudBees, explained that the shift to cloud-native has also had a rather large impact on release automation solutions and the way that they are operating within a DevOps pipeline.
“The tools have changed completely, from the CI/CD perspective all the way through to how you release software,” he said. “It was a very different world when everyone was in a single data center… in the cloud we see a far more programmatic control of the infrastructure.”
He explained that this change in methodology has allowed teams to come together and think about how to release software, fostering a heightened level of integration and collaboration between different teams, the tools they are using, and the infrastructure that is being released.
Further, Kodumal said that feature management providers have been working to ensure that their tools take the experience of the developer into account in order to limit potential complexities.
“There are other, more modern concepts that are being introduced into the software development life cycle,” Kodumal explained, “things like ephemeral environments, the ability to spin up an environment on demand… so it kind of goes all the way from local development, through testing and production environments, and beyond.”
Prioritizing integrations with observability tools is another aspect of release automation that has only grown in importance with the needs of modern software teams.
“With release automation I don’t think people think about observability and telemetry as something that is post-release… so now, people are building applications with a lot of telemetry experimentation and hyper-feedback loops because you can simply get infrastructure up and running so fast,” Ahmed said.
Furthermore, this acceleration in running infrastructure has allowed for a decrease in overhead, which gives development teams a chance to see how well an application is performing before it even gets to the production environment.
In that same vein, Kodumal explained that this heightened demand for hyper-feedback loops connects back to the idea that teams are striving to be more quantitative about their ability to ship software as well as the way they measure the impact of the software they have actually shipped.
Release automation tools can help organizations improve in both of these areas. “Feature management is interesting in that it is one of the techniques that can positively impact all four of the DORA metrics,” Kodumal explained. “So in terms of creating a feedback loop, teams are trying to optimize those four metrics, and using feature management as a step in their software development life cycle to drive those things in the right direction.”
Release automation and feature management tools can also help improve feedback loops when it comes to experimentation. This is because this technology allows for experiments to be easily and quickly rolled back without deploying changes if they are not going as planned.
Progressive delivery is another aspect of release automation that has been rapidly growing in popularity. Mercer explained that with this, teams can use certain techniques to take a more incremental approach to software releases.
This allows for organizations to gain feedback from a smaller group of users before the product is pushed to the wider user base, enabling developers to have confidence in the product they ultimately deliver.
With this, the demand for feature flags has risen as well. This allows for the turning on or off of features without the need to deploy new or existing code, offering organizations heightened control over the visibility of certain features.
“So, this takes releasing software down to a more granular level such that you can release the larger software updates that may contain a collection of features and turn them on or off without the need to deploy existing code,” Mercer said.
Putting the tools into practice
Release automation tools can offer several benefits to users, including increased velocity, quicker remediation time, and an improved feedback loop with customers.
According to Vinay Hiremath, co-founder and CTO of the video communication software company Loom and a LaunchDarkly user, feature flags can also be incredibly useful when it comes to decoupling code deployments from code rollouts.
“As your engineering team grows, this is a huge superpower because if all code rollouts go out at the same time, there are a lot of unintended side effects,” Hiremath said. “Not everybody is ready to have their code go out at the same time, and it also allows us to preview features in production within our own team before we roll it out to other members and audiences in production.”
He went on to say that feature flags have granted Loom’s team more fine-grained control over releasing features that may be more difficult to roll back, such as the company’s desktop application.
Despite their benefits though, Hiremath also explained that these tools do not come without their drawbacks. He stated that a key difficulty that could emerge is an unintended increase in the complexity of state. This comes when companies opt to test products with users in production.
“An example of this would be that our Loom video share page is by far our most trafficked page… So, our product and growth teams like to experiment on this page and like to figure out whether or not new functionality is something that people want to use,” he said. “The problem with this though, is that there are a lot of teams shipping a lot of features on this page and it is actually quite hard to reason about what combination of feature flags you are going to get, so we have run into some issues.”
Hiremath expanded on this, saying that this may cause users to see multiple different features being tested for the same purpose at once.
A positive consequence of this, however, is that this has made Loom’s product and growth team collaborate more and really look at the number of features being shown to users so that they can be reined in when needed.
Release orchestration’s role in shifting security left
Further, release orchestration has also seen a good amount of growth. Orchestration takes release automation a step further, coordinating tasks, integrating systems, making output based decisions, and adapting to changing conditions.
According to Ahmed, integrating release orchestration tools early on in the DevOps pipeline is the key to gaining the most benefits.
“Orchestration should begin at the first line of code that you write, and then the question becomes: how does that first line of code reach high quality and arrive in front of the customer,” Ahmed said. “Today, you might have a lot of automation and a lot of pipelines that are spread across multiple tools that the development teams will use… When you think about bringing orchestration into these DevOps pipelines to tie them together, it removes those barriers.”
He expanded on this, saying that by ridding the software development life cycle of the handoffs that can exist when working with multiple different tools and pipelines, it enhances the ability for teams to shift security and safety left.
This makes it easier for organizations to fully see the end-to-end value flow being delivered to customers, ultimately providing an improved end-user experience.
Learning to trust automation
In order for users to gain the most benefits from release automation and feature management tools, Kodumal explained that organizations need to determine how to most cleanly integrate them into the existing software development life cycle as well as their governance and change management practices.
It is also imperative for teams to find a way to put their trust in automation, rather than being skeptical of its abilities. He said that this has become more commonplace lately, as software teams have begun to realize the value in automation when it comes to streamlining processes and reducing human error.
“What we see is that when teams reach a certain level of process sophistication, people are more interested in automating both the deployment and the release side of things,” Kodumal said. “But, if an organization can’t feel comfortable that a practice like feature management can work with their desired or necessary change management practices, it’ll never get adopted.”
This has become even more prevalent with the sheer amount of new AI technologies that have popped up recently, though IDC’s Mercer said their effects on release automation tools are still in very early stages.
“For example, maybe software is released frequently using an automation and/or GitOps-like fashion such that developers or product managers can release software multiple times a day,” he said. “However, if the risk score associated with a software release exceeds a certain threshold, it follows a different workflow requiring more scrutiny and reviewers before release. AI could also be used to roll back a release that introduced instability to the production environment.”
Ahmed also mentioned that the initial attempts to bring newer AI into release automation have yielded positive results, however, there is still a long way to go.
With progressive delivery and release automation tools, the potential for AI is almost limitless. He explained that with generative AI, these tools could one day be able to evaluate code, understand what the purpose of the code is, and find a way to successfully get that code into production based on previous experiences.
Furthermore, Ahmed anticipates that AI and ML technology will work to make release orchestration and release automation in general more autonomous if it is introduced into the experimentation of a feature being delivered.
“Putting [AI] behind a flag and letting the system autonomously make a decision on whether the performance of that application or feature is within the boundary conditions and doing a progressive delivery of that feature autonomously will save operations teams and developers a tremendous amount of time,” he said.
This could also improve a company’s feedback loop as the hope would be that the AI could report back to the team and explain whether or not a feature is working as intended and direct the developer to the problem area, shortening their time to remediation.