Building, Testing and Releasing: The Importance of Continuous Delivery

Continuous delivery is a DevOps software engineering approach that uses interrelated principles and practices to ensure software is always in a deployable state. The idea is to reduce the cost, time and risk of delivering changes so you can deploy more often and ensure that your software is heading in the right direction.

By testing your product and feature ideas sooner, you can avoid spending money on building features unimportant to your customers and move your focus elsewhere.

Easier said than done.

"In theory, continuous delivery is an excellent idea, but in practice often creates downstream organizational challenges that can be difficult to overcome," says Joanna Wyganowska, director of product marketing at Octopus Deploy. "The further your organization is from the intended design (the more divisions involved), the greater the challenge. Process challenges also occur with the organizational changes that come with CD.

"Processes intended as quality gates or compliance requirements may need a review to assess their impact on throughput and workflow. If a team can deliver a feature in two days, but there is a two-week approval step, you must flag this as the critical constraint to resolve. Technical challenges also need to be addressed especially when attempting to create your own tools which can be expensive and may not be feasible in your current environment."

[Click on image for larger view.] Continuous Delivery and DevOps (source: Microsoft).

She credits her hard-won expertise to the privilege of being able to discuss best practices with DevOps practitioners related to CD and lessons learned from their DevOps journeys.

"When you design your processes around continuous delivery, you can deploy changes on-demand with high confidence," she says. "To do this, you must identify all activities needed to make your software ready to ship and then use them to build your own deployment pipeline. Continuous delivery and DevOps take this approach one step further, with extensive research and theory-driven scientific analysis to create the perfect pipeline making your team deployment masters."

If all that piques your interest, Wyganowska will share that hard-won expertise in an upcoming session titled "Building, Testing, and Releasing: The Importance of Continuous Delivery" at the big, five-day Visual Studio Live! developer conference set for Aug. 7-11 in San Diego.

She says attendees will learn:

  • How to manage organizational challenges that arise from CD practices
  • How teams can navigate the process and technical challenges that CD presents
  • How to build the right deployment pipeline for your organization

We recently caught up with Wyganowska to learn more about her upcoming session in a short Q&A.

VisualStudioMagazine: What inspired you to present on the topic of continuous delivery?
Wyganowska: My background is in applying lean principles to business operations, so to me, continuous delivery is a state of nirvana when it comes to software development.

"The elimination of friction between teams, seamless process flow, and a continuous feedback loop between the customer and the development team make continuous delivery a desirable state for any organization."

Joanna Wyganowska, Director of Product Marketing, Octopus Deploy

The elimination of friction between teams, seamless process flow, and a continuous feedback loop between the customer and the development team make continuous delivery a desirable state for any organization.

Inside the Session

What: Building, Testing, and Releasing: The Importance of Continuous Delivery

When: Aug. 9, 2:30 p.m. - 3:45 p.m.

Who: Joanna Wyganowska, Director of Product Marketing, Octopus Deploy

Why: By testing your product and feature ideas sooner, you can avoid spending money on building features unimportant to your customers and move your focus elsewhere.

Find out more about Visual Studio Live!, taking place Aug. 7-11 in San Diego

As an example, what is one especially significant benefit of continuous delivery?
One of the main benefits of continuous delivery is shorter lead times for changes. Teams can deliver features and bug fixes sooner, which directly improves customer satisfaction, thus reducing the risk of churn. This is very important in a highly competitive market, where the cost of acquiring new customers is only getting higher.

How does continuous delivery compare to other software engineering approaches?
Continuous delivery is the ultimate state of development -- it is frictionless. Anything other than that creates waste. Let's take, for example, a waterfall development process -- as teams complete their portion of work, such as developing a feature, they move it downstream to another team for testing and then deployment. Each step means an idle mode for upstream teams, which decreases overall developer productivity.

What are some of the challenges that organizations face when implementing continuous delivery?
Organizations will need to overcome internal and external challenges. External challenges can come from customer preferences or legal requirements. Some customers, especially in the finance and healthcare industry, do not want continuous updates to their systems. This is especially true if the application is mission-critical.

The main internal challenge, in my opinion, is team readiness to embrace continuous delivery. Many teams feel like they lose control over the process. When they feel things are happening outside of their realm of decision-making, they are likely to resist implementing continuous delivery concepts.

What advice would you give to organizations that are just starting to implement continuous delivery?
Start with a small project that has low technical debt. Once the process is running smoothly for that application, start evangelizing internally. The evolution of continuous delivery does not happen overnight and cannot be forced. It is also very important to start measuring your progress - pick a few metrics you want to track, such as deployment frequency (DF) and mean time to recovery (MTTR). This can be used in later stages when sharing data with different organization stakeholders, including the revenue and customer support leaders, to highlight the benefits of continuous delivery.

Note: Those wishing to attend the conference can save hundreds of dollars by registering early, according to the event's pricing page. The event organizer said: "Register for VSLive! San Diego by the Early Bird Deadline (July 14) to save up to $300 and secure your seat for intensive developer training in sunny Southern California!"

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


  • What's Next for ASP.NET Core and Blazor

    Since its inception as an intriguing experiment in leveraging WebAssembly to enable dynamic web development with C#, Blazor has evolved into a mature, fully featured framework. Integral to the ASP.NET Core ecosystem, Blazor offers developers a unique combination of server-side rendering and rich client-side interactivity.

  • Nearest Centroid Classification for Numeric Data Using C#

    Here's a complete end-to-end demo of what Dr. James McCaffrey of Microsoft Research says is arguably the simplest possible classification technique.

  • .NET MAUI in VS Code Goes GA

    Visual Studio Code's .NET MAUI workload, which evolves the former Xamarin.Forms mobile-centric framework by adding support for creating desktop applications, has reached general availability.

  • Visual Studio Devs Quick to Sound Off on Automatic Updates: 'Please No'

    A five-year-old Visual Studio feature request for automatic IDE updates is finally getting enacted by Microsoft amid a lot of initial developer pushback, seemingly misplaced.

  • First Official OpenAI Library for .NET Goes Beta

    Although it seems Microsoft and OpenAI have been deeply intertwined partners for a long time, they are only now getting around to releasing an official OpenAI library for .NET developers, joining existing community libraries.

Subscribe on YouTube