The big business challenge facing all companies today is how to deliver more features to their customers, faster. The expectations of today’s end-users are increasingly shaped by the experience of web and mobile applications that ‘just keep doing more’ automatically or at the click of a button.
With competitors able to release new features within days or even hours, companies can no longer afford unpredictable, lengthy and inefficient release processes that barely support one update every couple of months.
Unsurprisingly, companies are accelerating and streamlining their delivery pipelines to stay “ahead of the game” and succeed in today’s competitive marketplace.
The Situation Now — Inefficient Orchestration of Processes and People
The current reality in most companies is that orchestrating all the steps needed to get a completed feature into production is a time-consuming and effort-intensive process.
Even if the first part of the delivery pipeline, such as deployment to test or QA, is already automated, the “last mile” to production is generally a complex, manual effort. Typically, the release manager spends long meetings with all the teams participating in the release. Then, they draw up a spreadsheet or document that defines the release plan which is subsequently modified numerous times following comments from the planning team.
When the time comes to execute the release, the technical teams will use a whole bunch of tools to actually carry out the work – different tools from those that are used to plan and track the release.
Since there is generally no direct link between the planning tools and the tools used to execute the release, the release manager must constantly keep chasing the technical teams to find out how things are going.
This lack of integration and shared insight between the “technical track” and the “management track” ensures that releases in enterprise environments are typically highly reactive and stressful events. Release managers have little or no warning of potential conflicts, delays or bottlenecks within and especially across releases, and hence little ability to act early to prevent surprises.
One level up, service delivery managers and business owners are unable to compare and analyze the planning and evolution of releases across the entire service portfolio to identify the areas of the process that need to be improved in order to accelerate and streamline feature delivery.
Streamline and Accelerate: a Roadmap for Enterprise Releases
The first step towards achieving an accelerated, streamlined release process is to provide integrated insight into the technical and management tracks – a single, shared pane of glass for the entire release team. This pane of glass enables all manual and automated activities to be tracked and executed.
Once the release manager is freed from the dual chores of catching up and fire-fighting, he/she is better able to identify and prevent conflicts and bottlenecks in advance. In addition, the entire team benefits from a full audit trail that tracks the evolution of releases, visualizes the degree of deviation from the original plan, and quickly highlights unpredictable applications or projects.
Any technology you consider to assist your push for pipeline orchestration should promote process and data analysis, and provide comprehensive metrics and reporting — allowing you to track the effectiveness of your efforts.
DevOps and Continuous Delivery Growing Popular
The technical track of releases rarely proceeds flawlessly in most enterprises. Many tasks, especially in application deployment, environment provisioning, and configuration are still manual or semi-scripted — consequently slow and error-prone. Those tasks are immediate candidates for improvement. Savvy companies seek improvements via DevOps and/or Continuous Delivery (CD) initiatives.
Those initiatives usually involve introducing Continuous Integration and Application Release Automation, a measure of test automation, and on-demand provisioning and configuration of virtualized environments. The goal then is to integrate these to create an “end-to-end” pipeline that can orchestrate the appropriate build, environment provisioning, deployment and testing steps.
These steps can be linked using something as simple as chained jobs or builds in your Continuous Integration tool, or you can make use of one of a number of dedicated automation orchestrators.
If you are starting a greenfield project or working in a small, highly flexible organization, end-to-end automation all the way to production is often possible. In most enterprise environments, though, releases still require a mixture of manual and automated tasks to be coordinated across multiple teams, as well as the ability to deviate from the original plan in a controlled, auditable manner.
Since a streamlined, highly automated release process remains your end goal, it is critical that your orchestration tooling supports fully automated CD-style pipelines and DevOps-style automated platforms. Technology focused solely on the management track – planning and analysis – or on the automation track – no ability to handle manual tasks or deviate from the plan – will not enable you to reach that goal.
To start accelerating and streamlining your release process, ensure that all steps – manual and automated – are agreed upon by the entire team, and that everyone works from a single, updated release plan.
Next, ensure the technology you choose supports this collaborative planning and visibility and, critically, can unify the management and technical tracks of your release by supporting both assignment and tracking of manual tasks as well as automated execution.
Use the analysis capabilities of your technology to identify unpredictable and slow elements of your release process and initiate improvement projects to accelerate and streamline these. Track the progress and effectiveness of these projects using metrics provided by the tool.
About the Author/Andrew Phillips
Andrew Phillips heads up product management at XebiaLabs. Andrew is an evangelist and thought leader in the DevOps, Cloud and Continuous Delivery space. He sits on the management team and drives product direction, positioning and planning.