Sunil Mavadia, Director of Customer Success, XebiaLabs, shares continuous delivery tips and tricks.
With the promise to help companies deliver software much faster, with higher quality and less risk, the concept and practice of continuous delivery are taking IT organisations by storm. But easier said than done – indeed, it’s normal for companies to wrestle with how to make fundamental changes to their work structures and processes, as well how to kick-start new technology into their organisations. For a company evolving toward continuous delivery, this author wishes to share 3 tips for a successful transition.
1. Treat continuous delivery as a strategy not a technical solution
Continuous delivery offers enormous business benefits by radically removing waste from your software delivery process. But continuous delivery is much more than a set of technologies. It’s a strategy that reverberates across the company, transforming the way you deliver software to your customers. As such continuous delivery requires executive support, buy-in across the organisation and hands-on participation from all stakeholders in the release process, from developers and QA, to operations, release management, IT management, and business people. This is equally, if not more, essential than technology for successful implementation.
It’s not uncommon for organisations adopting continuous delivery to adapt or completely scrap some old organisational-wide practices, rooting out manual work, replacing it with automation and embracing principles and practices (such as agile) that promote the frequent, reliable execution of repetitive tasks.
2. Replace silos with cross-functional teams
Continuous delivery requires a high degree of collaboration that’s not possible when using traditional siloed approaches to software delivery. This is because communication between business, development, QA and operations takes place on many different levels, which often leads to confusion and long wait times due to handoffs between different people and groups. All of this increases the potential for hesitation and disruption.
Slow, error-prone, manual processes, delays and lengthy fix cycles inevitably lead to infrequent releases and unnecessary stress at release time, often followed by days or weeks of post-release emergency patches. How can a business ever release features quickly and reliably under these circumstances?
Savvy companies know this and concentrate on being highly customer-focused, getting management to support that focus with a set of practices and goals that improve standardisation, reduce variability, and speed time to market.
These practices typically include facets of lean software development such as Agile, which maximises speed, efficiency and high-quality throughput, while slashing wait times and inefficiency. Many companies also have embraced some degree of automation into their software development and release pipelines. Smart organisations allow their development teams to blend automation into their product releases cycles. By doing this, their time is better spent on cross-team communications and resolving dependencies more effectively.
3. Break down the wall
One of the biggest pain points when transitioning to continuous delivery is breaking down cultural stereotypes between development and operations (e.g., developers hastily push things into production while operations people move slowly and block suggestions from developers). Take a positive approach. Try laying out the many benefits of continuous delivery that naturally make it easier for the two groups to work together.
First, with continuous delivery, deployment of new software versions across all target environments is fully automated. Self-service allows developers to provision new environments on the fly, avoiding lengthy handoffs to operations – a major time sink and source of tension.
Second, continuous delivery provides greater control and reduces risk. By breaking the software delivery process down into multiple stages, it enables IT teams to verify new features every step of the way, preventing errors from being pushed down the pipeline. Plus, operations can automatically enforce the controls they need to ensure compliance, capture audit trails, reduce production failures and security vulnerabilities, and mitigate risk across the pipeline.
Third, by automating the pipeline, continuous delivery severely reduces or eliminates miscommunication. It does so by creating a single source of updated release information, providing visibility into the flow of changes, and establishing a means to provide feedback throughout the process.
Finally, continuous delivery frees developers and operations people to focus on their most important tasks. Instead of maintaining outdated code or manually provisioning environments, both teams can spend more time doing creative work, possibly reducing technical-debt in the process.
All of these things help bridge the gap between development and operations and build end-to-end delivery teams. Less tension. No red tape. More time for creativity. What’s not to like?
Change that’s worth the results
Introducing continuous delivery into your enterprise will likely involve many changes, notably abandoning single-function jobs, and creating cross-functional teams focused on the needs of the customer. It will also involve a paradigm shift, especially among Dev and Ops people. But, done properly, your changes will result in better software delivered faster to the customer.
Edited for web by Cecilia Rehn.