This article provides a recap of our webinar on April 29, 2020, Continuous Delivery: A Digital Transformation Accelerator, plus offers additional resources. Watch the recording below:
The Need to Deliver Faster
Now more than ever, digital product and IT leaders need to release more efficiently while mitigating the risk factors that come with moving quickly. However, the majority of software projects, in fact up to 84% of software projects, fail to live up to expectations, whether not being delivered on time, on budget, and/or within scope. Adopting continuous delivery is a proven organizational strategy to not just release software faster, but release better software, faster, thus reducing the rate of failure.
Evolving capabilities to build, test, learn, and iterate quickly is especially important during this time, as the COVID-19 pandemic that has drastically changed how many organizations operate, from both a customer-facing and a backend systems perspective. We see continuous delivery as a crucial approach to adapt to the rapidly changing world around us. Per an April 2020 InfoWorld article:
“All the timelines for embracing DevOps, generally, and continuous integration/continuous delivery (CI/CD) have shrunk.”
The book Accelerate by Nicole Forsgren, PhD contains a study done on 2,000 organizations across various industries, identifying the highest performing and lowest performing organizations among them.
Key metrics that determine the organizations’ performance are:
- Deployment frequency
- The time from implementation to go live
- Recovery time between failures
The organizations that have higher deployment frequency, less time from implementation to go live, and less recovery time between failures, see significantly lower failure rates in their software projects. These factors that measure software delivery are the difference between high performing and low performing organizations.
If it hurts, do it more often. Putting off software delivery is akin to putting off a toothache — someone begins to experience tooth pain, and they don’t address it right away because they don’t want to go through the time, money, and pain of going to the dentist. They continue to put it off, until finally they are concerned enough about the situation that they have to go to the dentist, where they end up having to pay for and suffer through a double root canal. Just like a toothache, stress around software delivery is best mitigated when addressed quickly and head on, through frequent deployments and rapid recovery.
With more frequent releases over time, software products are consistently validated and tested, thus reducing the risk of building the wrong product or building a low-quality product over time.
What are the Benefits of Continuous Delivery?
- Quality: Continuous delivery improves the quality of software products, with more testing and validation over time.
- Velocity: The speed to market for products is faster with continuous delivery.
- Happy Teams: Employees that receive feedback more often and work in smaller chunks are more aligned and satisfied with what they are building.
- Happy Customers: Customers that use digital products that are consistently and frequently being improved based on their own feedback are much more satisfied with the product.
How Do Companies Deploy Faster?
Prioritize Quality and Security
A common misconception that we hear is that quality needs to be sacrificed when you move faster. Continuous delivery helps to mitigate this by moving quality into tasks earlier into the development cycle. Quality doesn’t end at the customer experience of the product — it includes security, product analytics, and integration.
Is “done” when a product is on the shelf, or when it’s in the hands of the customer? “Done” means released — it’s when the software has been released into the hands of the user, and product analytics can help us test and understand what we can quickly iterate on and improve.
Automate, Automate, Automate
Automation can apply to many different areas of the business, including software testing, risk assessment, analytics, data mining, processing/clerking, and change management.
Organizational Culture Helps You Make the Most Out of Continuous Delivery
Software delivery is just a single facet of implementing continuous delivery — the culture that delivers the software also has to change. Cross-functional collaboration must be encouraged and rewarded, leading to a culture of shared responsibility. People tend to support what they help to create. The Westrum Cultural Model outlines three categories that cultures tend to fall into.
Pathological: This category is power-oriented, with little cooperation between departments. Scapegoating happens across teams, and responsibilities are shirked. In the pathological category, there is less innovation happening because siloes prevent the exchange of ideas and information across teams.
Bureaucratic: The bureaucratic category is rules-oriented — there is more cooperation across departments, but generally comes from the top down, with little cultural buy-in across the organization. Bridging between departments is tolerated but not necessarily enjoyed or encouraged among the teams themselves.
Generative: The generative category lends itself to the highest performing teams — this culture encourages high cooperation between departments and teams, and the risks and failures are shared across teams.
Team members having a sense of identity within a company culture is another core facet of implementing continuous delivery. How do your employees feel like they fit into and contribute to the overall organization? A continuous delivery approach prevents employees from feeling like “stone movers.” A culture of “stone movers” in which employees are handed down requirements, working in large chunks, and have long feedback cycles reduces job satisfaction and happiness, and thereby productivity. Continuous delivery helps organizations operate in shorter sprints, with transparency around requirements, and constant feedback cycles that make the team members, and the product, better.
- You Can Start Now: Continuous delivery doesn’t have to be an aspirational destination: it’s a series of small, incremental steps that you can take to improve your processes
- Everybody Wins: Implementing continuous delivery is not a zero-sum game — done right, everyone on the team and the customers win.
- It Takes a Team: Changing the software delivery approach is a transformational process for everyone involved, across the organization, from leadership to practitioners.