Continuous Delivery Will Make or Break Your Product
In today’s market, speed wins. There are likely many companies in your market all trying to solve the same problems. You can have a better product than your competitor, but if you can’t get it into the hands of your users it might not matter. Once someone starts using a product, it takes a good reason to motivate someone to switch. First to market matters.
So what’s a product manager to do? There are lots of ways to speed up your product delivery process. Lean Startup, Agile, and DevOps practices offer options to increase speed and decrease waste along the way. However, one of the most important practices is Continuous Delivery. Continuous Delivery is the ability to easily and quickly get product changes to your users. And Continuous Delivery will make or break your product.
This is the first post in a series that explores Continuous Delivery. This series targets product managers, who often have a significant influence in product decisions such as investing in a new feature or Continuous Delivery. This post explores the why and what behind Continuous Delivery. Future posts will explore the journey of a single change, practices that help support continuous delivery, and how to keep the continuous in continuous delivery.
What is Continuous Delivery?
At a high level, Continuous Delivery is the ability to easily and quickly release each change to your users. A change may be a new feature, an improvement to an existing feature, a bug fix, an experiment to validate a new idea. I work on Rally Software (formerly CA Agile Central) – a product that helps teams and teams of teams plan, execute, and iterate at scale. We continuously deliver each change when it’s ready, about 20 times per day across 16 teams. Some of these changes are immediately available to our users. Other changes are released more slowly to get feedback and monitor usage to ensure a good experience for all users.
“At CA Agile Central – we continuously deliver each change when it’s ready, about 20 times per day across 16 teams.”
While the details of Continuous Delivery may vary from company to company and product to product, the process normally includes planning the change, development, testing, merging the code, building the code, testing again, releasing, and validating the change. Ideally, most of this process is automated and reproducible to increase speed and decrease waste such as bugs. For Rally, a change can make it through the merge through release steps in about a 1 hour, although it normally takes a few days from the start of planning to release. In the event of an emergency like a severe bug, the process can happen much more quickly.
Why does Continuous Delivery Matter?
Eric Ries of The Lean Startup famously has said “We must learn what customers really want, not what they say they want or what we think they want. The only way to win is to learn faster than anyone else.”
“We must learn what customers really want, not what they say they want or what we think they want. The only way to win is to learn faster than anyone else.”
While approaches like Lean Startup and other lean product management and UX approaches help to validate solutions before writing code, shipping an actual product is where the “rubber meets the road” of truly validating if you’ve solved a customer problem. Each release is an opportunity to validate and learn – a feedback cycle. And the more feedback cycles, the more opportunities to learn and ultimately achieve your goals.
Let’s look at the impact of release frequency on feedback cycles:
- 2x releases per month = 24 feedback cycles per year
- 1x releases per week = 48 feedback cycles per year
- 1x releases per day = 260 feedback cycles per year
- 5x release per day = 1300 feedback cycles per year
More Frequent Delivery, Faster Feedback!
Anytime something sits in a queue (aka waiting for a release), there’s waste between the cost of production and not yet realizing it’s value. You don’t know if something is valuable until you get feedback from your users. The ability to deliver more frequently means more feedback cycles to iterate, learn, and ultimately happy users and meeting your business goals. Imagine if you could iterate on a feature 5x in a week with a small group of beta users – how would that change your outcomes?
But it’s not only about how often you release changes to your users but also how quickly you can get those changes ready for release from idea to shipped. The amount of time it takes from deciding to work on an idea to delivering an outcome is often referred to as cycle time. Cycle time includes all the steps in your process – planning, development, testing, handoffs, shipping, etc. Another important aspect of Continuously Delivery is the ability to not only release as changes are ready but to be able to minimize the amount of time it takes to cycle the change through your process. Focusing on things such as automation, minimizing handoffs, and limiting the number of simultaneous things in process are often common approaches to fast cycle times.
The Hidden Benefits of Continuous Delivery…
Continuous Delivery also often has a positive impact on the happiness of the people doing the work. Faster feedback cycles enable developers and other team members to stay focused on solving a single problem and iterating on it quickly instead of switching to the next problem while they’re waiting for feedback. Reducing context switching reduces helps team members to stay immersed in the problem, fulling bringing their full experience and capabilities to the problem. Continuous Delivery also reduces boring repetitive work through automation. Often, the build, test, and release steps of a Continuous Delivery process are automatically triggered when code changes are committed. When the automated steps finish, feedback is provided in the form of test results or auto provisioned test environments for demos.
Continuous Delivery is critical to making a great product that users love and that help you achieve your business objectives. It enables faster feedback cycles, providing more opportunities to learn, iterate, and win. And Continuous Delivery can even help improve team member happiness and productivity. Magic and unicorns, right? The next post will take a deep dive into the fantastic voyage of a single change as it travels through a Continuous Delivery process.