Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

—Agile Manifesto

 

Continuous Delivery Pipeline

The Continuous Delivery Pipeline (CDP) represents the workflows, activities, and automation needed to shepherd a new piece of functionality from ideation to an on-demand release of value to the end user.

As illustrated in Figure 1, the pipeline consists of four aspects: Continuous Exploration (CE)Continuous Integration (CI)Continuous Deployment (CD), and Release on Demand, each of which is described in its own article.

 

Figure 1. The SAFe Continuous Delivery Pipeline

The pipeline is a significant element of the Agile Product Delivery competency. Each Agile Release Train(ART) builds and maintains, or shares, a pipeline with the assets and technologies needed to deliver solution value as independently as possible. The first three elements of the pipeline (CE, CI, and CD) work together to support the delivery of small batches of new functionality, which are then released to fulfill market demand.

Details

Building and maintaining a Continuous Delivery Pipeline provides each ART with the ability to deliver new functionality to users far more frequently than with traditional processes. For some, ‘continuous’ may mean daily releases or even releasing multiple times per day. For others, continuous may mean weekly or monthly releases—whatever satisfies market demands and the goals of the enterprise.

Traditional practices tend to perceive releases as large monolithic chunks. However, the reality is that releasing value need not translate to an ‘all-or-nothing’ approach. Using a satellite as an example, the elements of the system are comprised of the satellite, the ground station, and a web farm that feeds the acquired satellite data to end-users. Some elements may be released daily—perhaps the web farm functionality. Other elements, like the hardware components of the satellite itself, may only be released every launch cycle.

Decoupling the web farm functionality from the physical launch constraints and eliminating, the ‘full release’ approach, increases the opportunities for more Business Agility, which is to deliver the system—in whole or in part—in a way that meets evolving market needs.

Building the Continuous Delivery Pipeline with DevOps

The SAFe continuous delivery pipeline model shows the flow of value through four aspects: continuous exploration, continuous integration, continuous deployment, and release on demand. The CPD enables organizations to map their current pipeline into a new structure and then use relentless improvement to deliver value to customers. Feedback loops that exist internally within and between the aspects, and externally between the customers and the enterprise, fuel improvements. Internal feedback loops often center on process improvements, while external feedback often centers on solution improvements. Collectively, the improvements create synergy in ensuring the enterprise is ‘building the right thing, the right way’ and delivering value to the market frequently.  The paragraphs below describe each aspect.

  • Continuous Exploration (CE) focuses on creating alignment on what needs to be built. In CE, design thinking is used to ensure the enterprise understands the market problem / customer need and the solution required to meet that need. It starts with an idea or a hypothesis of something that will provide value to customers, typically in response to customer feedback or market research. Ideas are then analyzed and further researched, leading to the understanding and convergence of what is needed as either a Minimum Viable Product (MVP) or Minimum Viable Feature (MMF). These feed the solution space of exploring how existing architectures and solutions can, or should, be modified. Finally, convergence occurs by understanding which Capabilities and Features, if implemented, are likely to meet customer and market needs. Collectively, these are defined and prioritized in the Program Backlog.
  • Continuous Integration (CI) focuses on taking features from the Program backlog and implementing them. In CI, the application of design thinking tools in the problem space focuses on refinement of features (e.g., designing a user story map), which may motivate more research and the use of solution space tools (such as user feedback on a paper prototype). After specific features are clearly understood, Agile Teams implement them. Completed work is committed to version control, built and integrated into a full system or solution, and tested end-to-end before being validated in a staging environment.
  • Continuous Deployment (CD) takes the changes from the staging environment and deploys them to production. At that point, they’re verified and monitored to make sure they are working properly. This step makes the features available in production, where the business determines the appropriate time to release them to customers. This aspect also allows the organization to respond, rollback, or fix forward when necessary.
  • Release on Demand (RoD) is the ability to make value available to customers all at once, or in a staggered fashion based market and business needs. This provides the business the opportunity to measure hypothesis and learn, based on the customer response to the value released, what it needs to do next.

Although it is described sequentially, the pipeline isn’t strictly linear. Rather, it’s a learning cycle that allows teams to establish one or more hypotheses, build a solution to test each hypothesis, and learn from that work, as Figure 2 illustrates.

Figure 2. The Continuous Delivery Pipeline is a mechanism for continuous learning and value delivery

Although a single feature flows through the Value Stream sequentially, the teams work through all aspects in parallel. That means that ARTs and Solution Trains, throughout every PI and every iteration in the PI, continuously:

  • Explore user value
  • Integrate and demo value
  • Continuously deploy to production
  • Release value whenever the business needs it

Start by Mapping the Current Workflow

Successful enterprises already have a delivery pipeline—otherwise, they wouldn’t be able to release any value at all. But too often they are not automated, contain significant delays, and require tedious and error-prone human intervention. This, in turn, causes organizations to delay releases, increasing their size and scope (“We’ll release when it is big enough”). This is opposite of the SAFe Principle #6, which promotes limiting Work in Process (WIP) and reducing batch size.

The first step to improving value flow is mapping the current pipeline. Figure 3 illustrates the flow of value through one enterprise’s current pipeline, focusing initially on new Feature development. Over time, this would be extended to capture any change to the system, from new Features to maintenance to architectural improvements.

Figure 3. A map of one company’s delivery pipeline

Once the current pipeline has been mapped, metrics can be added to measure the flow of value, to understand delays and identify opportunities for improvement (such as eliminating delays or reducing rework). Four primary metrics [1] are used (Figure 4):

  • Process Time is the time it takes to get work done in one step. As an example, in Figure 4, the ‘Design’ step takes four hours.
  • Lead Time is the time it takes from when the work was done in the previous step until it’s done in the current step. In other words, Lead Time = Delay Time from Last Step + Process Time of the current step. In Figure 4, the lead time from creating ideas to defining them is variable. It is common when first mapping systems to not have clear metrics on certain steps. In this case, the remaining part of the process can be improved while metrics are gathered on the variable part.
  • Delay time is the time when no work is happening. Continuing with Figure 4, the work accepted by the Product Manager is delayed a staggering 696 hours before being deployed to staging. Understanding and eliminating unnecessary delays is critical to improving the flow of value.
  • Percent Complete and Accurate (%C&A) represents the percentage of work that the next step can process without needing rework. Often, delays are caused by poor quality in the upstream (prior) steps. The percent complete and accurate metric helps identify the steps where poor quality might be occurring and causing longer lead times, resulting in delays of value delivery. Figure 4 indicates that 20% of the time the work moving from the ‘Design’ step to the ‘Code’ step, needs to be reworked. Improving the %C&A metric is also essential to improving the flow of value. The %C&A of a single step is extended to rolled percent complete and accurate, a measure that captures the likelihood that an item will pass through the entire workflow without rework. With a cumulative rolled %C&A of 41%, this workflow is reworking more than half of its items.
Figure 4. Delivery pipeline extended with process metrics

Align the Current Workflow to the Continuous Delivery Pipeline

Once the current flow is understood, it can be mapped into the SAFe Continuous Delivery Pipeline. Mapping helps the organization adopt a common mental model and provides an efficient means to communicate changes and improvements. Figure 5 removes the labels of “Continuous” because at this stage the process is unlikely to resemble an automated pipeline.

Figure 5. Map current pipeline to the SAFe Continuous Delivery Pipeline

Identify Opportunities for Improvement

Teams look for the opportunity to improve the efficiency of each step, consequently reducing the total lead time. This includes addressing process time, as well as the quality (percent complete and accurate) of each step. The higher that number, the less rework is required, and the faster the work moves through the system.

As shown in Figure 6, the delay time (time between steps) is often the most significant initial factor. Delay time represents handoffs, waiting, and other non-value-added wastes. This process has two considerable delays and a significant amount of rework in the first step of the deployment process. Reducing delays is typically the fastest and easiest way to lower the total lead time. Another high priority area to improve is any step with low %C&A metrics, as reducing rework enables the ART to focus on creating value (e.g., for a software solution, instead of fixing bugs the team can focus on new features). Subsequent opportunities for improvement focus on reducing batch size and applying the DevOps practices identified in each of the specific articles describing the continuous delivery pipeline.

Figure 6. Identify opportunities for improvement

Tracking Continuous Delivery

When viewed as a whole, continuous delivery is an extensive process. Indeed, it may be the most vital capability of every ART and Solution Train. It’s important that stakeholders can visualize and track the ongoing work, even though a significant portion of it is automated. They need the ability to establish Work in Process (WIP) limits to improve throughput and identify and address bottlenecks. That’s the role of the Program Kanban, as shown in Figure 7.

Figure 7. An example Program Kanban

The Kanban systems consist of a series of states, each of which is summarized below:

  • Funnel – This is the capture state for all new features or enhancement of existing system features.
  • Analyzing – Features that best align with the vision are pulled into the analyzing step for further exploration. Here they’re refined with key attributes, including the business benefit hypothesis and acceptance criteria.
  • Program backlog – After analysis, higher priority features move to the backlog, where they’re ranked.
  • Implementing – At every Program Increment(PI) boundary, top features from the program backlog are pulled into the implementing stage, where they’re developed and integrated into the system baseline.
  • Validating on staging – Features that are ready for feedback get pulled into the validating on staging step to be integrated with the rest of the system in a staging environment, and then tested and validated.
  • Deploying to production – When capacity is available, features are deployed into the production environment, where they await release.
  • Releasing – When sufficient value meets market opportunity, features are released, and the benefit hypothesis is evaluated.
  • Done – When the hypothesis has been satisfied, no further work on the feature is necessary, and it moves to the done column.

Assessing and Improving the Flow through the Pipeline

As is described in the DevOps article, the DevOps and continuous delivery pipeline health radar shown in Figure 8 helps ARTs and Solution Trains assess their maturity in the 16 activities of the continuous delivery pipeline.

Figure 8. The SAFe DevOps and Continuous Delivery Pipeline health radar

 


Learn More

[1] Martin, Karen. Value Stream Mapping: How to Visualize Work and Align Leadership for Organizational Transformation. McGraw-Hill Education. Kindle Edition.

[2] Kim, Gene. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business WinIT. Revolution Press. Kindle Edition.

[3] Kim, Gene; Humble, Jez; Debois, Patrick; Willis, John. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution Press. Kindle Edition.

 

Last update: 28 September 2019