If you just got a budget approved for release automation — congrats! You probably can’t wait to archive your old Excel spreadsheets, workflows and scripts in favor of an actual release automation tool to plan, automate and manage the status of your entire release pipeline.
You are in good company, too. Fifty percent of global enterprises will have implemented at least one application release automation solution by 2020 — up from less than 15% today, according to Gartner’s Magic Quadrant for Application Release Automation according to the latest Gartner Magic Quadrant for Application Release Automation.
Release automation tools are vital for enterprises implementing DevOps initiatives because they help streamline and automate the activities that take place from “code commit” to production.
In today’s highly competitive market, where smaller companies have enviable agility, you need to release with the highest speed and quality possible.
The question is: Is release automation all you need?
What to Expect from Release Automation
At the heart of release, automation is a workflow engine that orchestrates all the steps required to release applications into production. While some tasks may be manual, many are automated and kick off processes in other tools.
Some of the most popular tools for release automation include XL Release (XebiaLabs), UrbanCode Release (IBM), ElectricFlow (Electric Cloud), Serena Release Control (Micro Focus), and Automatic Release Automation (CA Technologies).
If the release is not fully integrated with the entire software development process, including planning, design and implementation, the organization will still struggle to achieve the short end-to-end lead times.
By their very nature, release automation tools require many lightweight integrations, usually in the form of plug-ins, to trigger processes in other tools, like starting smoke tests, setting up or tearing down environments, and deploying the release.
So it’s no surprise that release automation software quickly becomes the center of the CI/CD pipeline, at the center of all the tools used in that phase.
Yet, while a huge leap forward, release automation is but one piece of the puzzle to achieve optimized flow of work through your software delivery process.
Avoid Repeating Mistakes of Agile with Release Automation
Release automation, while vital, focuses on optimizing the “build, release and deploy” stage. Nonetheless, if the release is not fully integrated with the entire software development process, including planning, design and implementation, organizations will still struggle to achieve the short end-to-end lead times that are helping startups and digital giants win markets.
If you recall, when Agile first came on the scene, development sped up, but the bottleneck shifted to operations. No one was looking at the end-to-end flow of work, and nobody realized that optimizing one work center meant that work in progress (WIP) would be piling up at the next one. DevOps was born of this crisis.
Forward-thinking IT leaders can already see that even the combination of Agile and DevOps, including release automation, will not be enough. Bottlenecks and latencies will occur in other phases — like ideation, planning, feature design or support.
The lesson to be learned is this: If you’re making the investment in laying down any kind of IT optimization foundation, you should do it with a holistic, system-oriented approach.
Forrester predicts that in 2018, “CEOs will expect their CIOs to lead digital efforts by orchestrating the enabling technologies, closing the digital skills gap, and linking arms with CMOs and other executive peers better positioned to address the transformational issues across business silos.” (Predictions 2018: CIOs Make The Chief Digital Officer Obsolete, by Pascal Matzke and Matthew Guarini, published November 6, 2017).
This implies that by the time you’ve completed your release automation implementation, your CIO will already be asking for an entirely new set of metrics:
- She’ll want to know what’s preventing the company from delivering more and faster.
- She’ll want you to prove how your release performance metrics contribute to actual business results.
- She’ll want you to measure end-to-end lead time, from the original idea or customer request until it’s actually running in production.
Your IT toolchain strategy needs to bear this in mind.
Can You Create End-to-End Visibility with Release Automation?
Release automation has limited visibility or insight into the activities that take place in the phases that precede or follow the release. The handful of operations it can trigger on a Jira or ServiceNow are but a fraction of the complex, intricately related information that needs to flow between tools to create a traceable end-to-end process.
To be prepared for the metrics you’ll need to present to the CIO, you need to tie release automation to the entire software delivery process. The software value stream includes four major stages, each with its own set of tools: Ideate, Create, Release and Operate. These stages cover the flow of work from the very inception of a feature or new functionality until it’s finally delivered, and then back through the feedback loop.
The entire toolchain will need to be integrated to produce a traceable record of the original feature request, as it moves from phase to phase. Release automation tools are designed to orchestrate the Release tool cluster, but cannot integrate the end-to-end toolchain.
Optimize Release Automation with Enterprise Integration Infrastructure
Interestingly, there are likely other IT toolchain integration initiatives either planned or underway in your organization, motivated by productivity, quality or traceability challenges. Those integration initiatives are creating a measurable end-to-end value stream, which you can leverage to marry release performance to the business value of the features you release.
Off-the-shelf enterprise toolchain integration infrastructure is the missing layer you need to tie it all together. Integration infrastructure connects the best-of-breed tools that housework items like requirements, features, tests, defects, and trouble tickets and automatically flows artifacts between them. Thanks to this integration, previously informal and error-prone handoffs through emails, chats and duplicate data entry are replaced with a formal, traceable and measurable flow of information.
Here are a few examples of popular value stream integrations among the Fortune 100 include:
- Requirements Management <-> Agile Planning <->Test Management
Organizations that develop safety-critical software must trace every code change to a corresponding requirement and demonstrate that the code actually satisfies the requirement and was tested. This integration pattern creates the necessary level of traceability.
- Agile Planning <-> Test Management <-> IT Service Management (ITSM)
Software delivery organizations are integrating these tools to automate defect reporting and resolution, as well as to generate insights into their mean time to repair (MTTR) performance.
- Agile Planning <-> Agile Planning
You’d be surprised how many organizations have multiple tools for Agile Planning, like LeanKit, Jira and Targetprocess. They need to create a unified system for work intake and tracking by creating a master view of all the work taking place.
Unlike the short-lived release orchestration activities, these heavyweight integrations flow and synchronize long-lived work items across tool repositories. Collaboration artifacts include a rich set of information — text, images, comments, attachments and relationships. To accomplish this level of synchronization, a sophisticated integration infrastructure is in order.
Integration infrastructure can capture events from the Release tool cluster as well, for example, linking a changeset or build to a story; creating defects from failed automated tests, code scans or APM alerts; or generating a change request when new code is deployed.
The true insight from high performing IT organizations is that they are combining enterprise integration infrastructure and release automation tools for end-to-end feature traceability. They’re able to demonstrate to the CIO how automating releases delivered features to production faster — features that generate business results, like revenue.
But this raises a question: when should you use the integration capabilities of your release automation tools vs. the integration infrastructure layer itself?
Maintaining Agility Through Enterprise Toolchain Integration Infrastructure
We are extremely lucky to be in an age of tool abundance — best-of-breed tools are thriving. IT practitioners have their pick from literally hundreds of tools, two hundred in the DevOps space alone. You can choose the combo that maximizes individual and team productivity to the fullest extent.
And while each decade has some “stars” in each cluster — tools at the height of their popularity like Jira and ServiceNow — the toolchain is ever evolving. No one tool can meet the needs of such a varied, multidisciplinary set of roles. An agile tool architecture helps tool managers be prepared to support the tools practitioners are using today and what they’ll be using tomorrow.
In a modular tool architecture, tools are loosely coupled to ensure simplicity and increase stability. Just like in software, it’s best to integrate modular tools through a scalable integration infrastructure, instead of point-to-point connections.
There are several benefits to implementing an integration infrastructure layer alongside release automation:
- Create a traceable record of all work items as they flow through the value stream: If major artifacts, like features, epics, stories, test cases, defects, releases and trouble tickets all flow between tools via the integration layer, you’ll have a single system record of the progression of work across functional areas for traceability and reporting.
- Improve the input to your release automation tool: Assuming your release automation tool has a plug-in to Jira and can query Jira for open issues, flowing all defects to their corresponding epics and stories in Jira actually helps release automation check if a release criterion is met (e.g. “no open sev 1 defects”). An integration between your test management tool to Jira would make all this information readily available for release automation to consume.
- Eliminate disruptions when integrating mergers, acquisitions or reorganizations: An integration infrastructure helps you quickly integrate new toolchains from mergers, acquisitions and reorganizations without disrupting work.
- Experiment with new tools or replace old ones without disrupting existing workflows: If you have an integration infrastructure in place, you can test out new tools, or swap existing tools, without having to invest any resources in developing point-to-point integrations.
- Reduce costs from tool licenses by flowing data between tools: Prevent practitioners from logging in to two or more tools. With an integrated tool chain, practitioners can stay in the tools they love — the information they need will be delivered to them there.
How Release Automation, Tool Chain Integration Complement Each Other
|Toolchain Integration Infrastructure|
|Really good at…||Orchestrating code commit to production activities, reporting and project management||Synchronizing defects, stories and test cases across tools like Jira, TFS, ServiceNow and Micro Focus (HP) and automating handoffs|
|At the core it’s…||Planning and workflow engine||Integration infrastructure|
|Flows work…||Within the release pipeline||Through the end-to-end software delivery process|
|You realize you need this tool when...||You start implementing CI/CD||Teams are working in silos and your tools don’t communicate nor integrate|
|Is invoked when…||New code is committed||The feature or functionality is first conceived|
|Identifies bottlenecks…||In release and deployment||Anywhere in the software delivery process|
|Measures lead time…||From code commit to deployment||From ideation to deployment|
|Main benefits||Release automation, deployment velocity, reduction of failures||Increased end-to-end velocity, quality and traceability|
Best Practices in IT Toolchain Integrations
We’ve studied the implications of an agile tool architecture on the role release automation tools should play in integration and surfaced three best practices to maintain agility:
- Use the release automation plug-ins to orchestrate release and deployment activities and execute commands within the Release tool cluster.
- Use an enterprise integration infrastructure to flow complex artifact data between tools in the Ideate, Create and Operate tool clusters, and to connect tools that do not have available plug-in integration. This will be essential to creating that traceable value stream that can tie to release performance to business results.
- In places where there’s an overlap between the capabilities of your release automation tool and your enterprise integration infrastructure, choose what works best to integrate release automation to the rest of your toolchain. If your tools have a strong native integration — like that between IBM UrbanCode Release and IBM Rational Team Concert — use it. If your tools don’t have an available plug-in, use your integration infrastructure.
At the end of the day, it’s not a question of doing one or the other, as release automation and integration infrastructure solve different problems for different teams. Yet, for the CIO to see the full value of release automation, both need to be in place. A system-oriented approach to enterprise toolchain integration is critical for IT optimization.
Images by Tasktop.