All the Canaries Lived: It’s Time to Adopt Progressive Delivery

273
Progressive-Delivery-ebook-announcement-LaunchDarkly

Sometimes we make progress by giving it a name. 

James Governor of RedMonk coined the term “Progressive Delivery” after being inspired by a conversation with Sam Guckenheimer of the Azure DevOps team about what Microsoft calls “Progressive Experimentation” for feature rollouts.

James and I met just after that meeting and when he asked me what I thought of the idea, I immediately realized Feature Management was key to this new model for the modern software development lifecycle (SDLC), in which dark launches, testing in production, A/B and blue/green testing, would become mainstream. James and I have championed this model ever since. IBM, Microsoft, Target, and others have embraced the approaches described, as a way to deliver new features more quickly and with lower risk. LaunchDarkly is delivering on the promise of Progressive Delivery. 

I have written, presented, and expounded on the subject. In fact, I recently had the pleasure of moderating a webinar on Progressive Delivery featuring Sam Guckenheimer and Dr. Claire Knight of Github.

The ideas underlying Progressive Delivery have been brewing for some time. We’ve compiled the key concepts of the methodology in our latest eBook: Progressive Delivery: The next iteration of Continuous Delivery centered on risk reduction, business outcomes, and control.

Progressive-Delivery-ebook-blog-post-ad-1

The adoption of Progressive Delivery will decide who wins and loses in modern software development. This is why we keep talking about it. We also keep talking about Progressive Delivery because it is the very thing our platform is designed to enable.

Why should you care about Progressive Delivery?

Software teams should care about Progressive Delivery for the same reason they care about Continuous Delivery: to satisfy the customer. As you may recall, Continuous Delivery gets its name from the first principle of the Agile Manifesto which states that a software developer’s highest priority should be “to satisfy the customer through early and continuous delivery of valuable software.”

If you can’t satisfy customers, then you might as well file for bankruptcy now to save yourself the trouble later. Thankfully, Progressive Delivery enables you to satisfy customers in several ways. The story of Reciprocity illustrates the point well.

Reciprocity provides compliance and risk management software for companies like Alaska Airlines, Colgate, and Stanford University. The company was in a jam a while back. Certain customers had been asking them for new functionality. But the engineering team struggled to deliver such features promptly enough because of limitations in their development processes.

The VP of Engineering, Joe Alfaro, put it candidly: “We had a couple of customers who were about to churn…and they were saying, ‘We needed this functionality, and we’re going to find it somewhere else because you guys don’t have it.’”

Joe’s team eventually took action. They gave specific customers access to early-stage versions of new features. And they were able to do this thanks to LaunchDarkly’s feature management platform. By using feature flags within LaunchDarkly, they could deploy incomplete features to production while only releasing them to specific customers. It worked beautifully; Joe’s team won back the accounts that were at risk of churning.

They then took things a step further. Engineers started giving product managers (PMs) control over features as they were being built. This meant product managers could run their own beta tests and experiments, which, in turn, provided valuable user feedback and engagement data sooner. PMs then used these insights to either scrap a feature or keep iterating on it. After several iterations, such features were about as perfect as they could be by the time they became generally available. In the wake of all this, customers are happier, cross-team collaboration is better, and code is getting deployed to production 90X faster.

The techniques Reciprocity adopted—feature flagging, testing in production, release progressions, and progressive delegation—are pillars of Progressive Delivery. Above all, Progressive Delivery gave the company control. It allowed them to control who can release and who gets that release, and when. And it was feature management, by and large, that gave them Progressive Delivery.

This brings us to why you should care about what LaunchDarkly has to say about Progressive Delivery.

Why should you care about LaunchDarkly’s take on Progressive Delivery?

The short answer is LaunchDarkly is a feature management platform, and feature management is essential to Progressive Delivery.

Allow me to elaborate on the relationship between feature management and Progressive Delivery.

Software powers the world. Its tentacles reach into more and more areas of our lives. Software is taking over things that once were the sole domain of electromechanical (non-digital) systems, and doing so at a remarkable pace. In this software-centered universe, one that is both thrilling and frightening, LaunchDarkly empowers all teams to deliver and control their software.

Progressive-Delivery-Software-Powers-the-World-LaunchDarkly

  • The reference to “all” teams connects to the idea of progressive delegation, in which engineers give non-engineers control over certain features. It invites business stakeholders to participate in, and even own, the process of delivering software. This kind of progressive delegation is a key concept of Progressive Delivery.
  • “Control,” as we’ve demonstrated, lies at the heart of Progressive Delivery. Such control allows teams to deploy when they want and release when their customers are ready. It vastly reduces risk when shipping new features. And it shields customers from the impact of the inevitable failures that occur in your application.

LaunchDarkly equips all teams with this control in the following way. As a feature management platform, it lets you create and manage feature flags at scale. Moreover, it lets you use flags for complex use cases (versus simple Boolean scenarios). The control comes from:

  1. Attaching feature flags to every change you make to your software; and
  2. Being able to easily see, toggle, and transfer the ownership of those flags.

We have the knowledge and tools to help you on your journey toward Progressive Delivery. This is why we’ve taken a first step in formalizing our position on the subject and why we think you’d benefit from our perspective.

The new standard in software delivery

Software is never done. We’re always iterating. The same is true of how we build and ship software. Such is the case of Progressive Delivery: it takes all the wonderful goodness of Continuous Delivery and improves upon it.

This new approach makes software development a company-wide endeavor, thus fostering collaboration between engineers, product managers, and beyond. It aligns deployment and release processes with business objectives. What’s more, it gives you the control you need to better serve each customer, whether that customer is a feature-hungry startup or a risk-averse enterprise.

If you build software, then you need to start paying attention to Progressive Delivery—and feature management too, for that matter.

Avatar
Adam has over 20 years of experience working in a variety of roles from software engineering through to technical sales. He has worked in both enterprise and consumer companies such as VMware, EMC, and GitHub. Adam is driven by a passion for inclusive leadership and solving problems with technology. One additional objective is to be a part of a diverse and equitable company. Not simply an organization that accepts diversity, but one that actively pursues a more diverse and inclusive team as a imperative for building better products and services. Adam is also an Advisor for a number of startups and nonprofits. His perspective on life has been shaped by a background in Physics and Visual Art, an ongoing adventure as a husband and father, and a childhood career as a fire juggler.