These DevOps practices will speed up your delivery pipeline

public://pictures/carmen_deardo.png
Carmen DeArdo, Senior Value Stream Management Strategist, Tasktop Technologies

You've reached the summit of your DevOps journey when your teams can deliver more frequently and be more responsive to the business. But to get there, your teams must first understand their delivery value stream, including blockers and wait states, so they can determine how to deliver more quickly.

Your teams need visibility and metrics (e.g., lead time) that they can use to understand what their constraints are. And you must integrate and architect the underlying delivery pipeline your teams use for speed of delivery.

My experience at companies such as Bell Labs and Nationwide—with agile, lean, and now DevOps—has taught me that for an enterprise to apply DevOps concepts at scale and accelerate app delivery, your teams must create a structure and culture that allow them to own their journey.

They must identify areas where they can improve while applying systems thinking to determine how to apply these ideas to optimize the enterprise delivery value stream.

Your teams need to treat the delivery pipeline as a product that needs to be architected for speed of delivery. Here are the steps required to do that—and the challenges that lie ahead.

How to Build a DevOps Toolchain That Scales

Architect your delivery pipeline

Treat your delivery pipeline like a product, rather than a disparate set of tools you use to move from customer idea through deployment. Here's how you do it.

  • Have a product owner for the delivery pipeline who can own funding and prioritization, just as you do for a business product.
  • Use a best-of-breed approach for selecting tools. The next greatest tool for continuous integration (CI) or agile management is just around the corner, and you will want to integrate it into the rest of your pipeline.
  • Use standard integration patterns and technologies to integrate tools into your pipeline in the way they were intended. Customization is an anti-pattern that creates "tool debt" that will cost you down the road, when you want to upgrade or replace the tool.
  • Use model-based integration so that your workflow isn't disrupted when you add a different tool. For example, if you are currently using RTC for agile management and want to move to Jira, using model-based integration will allow you to strangle the old tool out of your pipeline while introducing the new tool seamlessly.

Architect product value streams

Optimize how work flows by architecting product value streams through the application of these practices.

  • Organize teams around value streams, which deliver business value for a given customer segment.

  • Architect the value streams for flow and speed of delivery. This means looking for ways to eliminate wait states using concepts such as microservices, APIs, and automation.
  • Make work and flow visible, which includes not just business value work, but also defects, technical debt, and, most important, risk items. It's impossible to understand what might be slowing down the flow of work without being able to see the entire flow of work. And often you need to prioritize risk items higher than business value work.
  • Measure lead times, including processing and wait times. While the State of DevOps 2018 report talks about measuring the time from code commit until deploy, most of the time spent going from idea to deployment occurs before the work ever gets into your development team's backlog. This work also needs to be measured and made visible to identify bottlenecks.
  • Use information in retrospectives and ask, "What's slowing us down, and how can we go faster?" As W. Edwards Deming talked about in his concept of quality circles, the team itself knows best what can help them improve.
  • Create continuous improvement initiatives, and prioritize and track this work along with the other work the team is doing. Experiment to see if these improve the flow of work as measured by lead time. If they do, determine how these results can be applied to other areas of the enterprise.

[ Webinar: Agile Portfolio Management: Three best practices ]

Mitigate wait states

Once your product workflow is visible, you can use these practices to more easily identify and mitigate bottlenecks. 

Self-service 

Move from a system of service requests with associated service-level agreements (SLAs) from centralized organizations such as performance, infrastructure, DBAs, and security teams to one of self-service. Providing automated and self-service capabilities can reduce the cycle times associated with these activities from weeks to days or even hours.

Dark launching and feature toggling

These eliminate the time spent waiting on other teams for dependent work to be completed. A leading indicator of lead time is the number and age of branches in your repository. Practices such as these eliminate or shorten the life span of branches and allow teams to work toward committing directly to the trunk.

Inner-sourcing

This allows teams to change code they don't own, using the concept of Git pull requests. This will be a popular way to allow teams to do parallel development through codebases while ensuring the integrity of that code.

Making it all work

The key to making these concepts work lies in improving the speed of delivering business value to customers. It requires thinking more horizontally across the end-to-end value stream, which cuts through the silos of activities that slow delivery.

The challenge that lies ahead is to align the business and IT more closely. You can do so by moving to a product-centric model that aligns business objectives with the visible flow of work, from initial business idea through deployment, and by getting customer feedback more quickly.

Creating value for customers is not something temporal that begins and ends with the next project, and it's not something IT organizations can achieve in a vacuum. You must transcend being seen as a cost center and become a full partner, working with the business to accelerate the flow of delivery across the end-to-end product value streams.

For more on how to architect your delivery pipeline for speed using DevOps, watch my presentation during the All Day DevOps online conference, which takes place on October 17, 2018. Admission is free, and you can also watch my talk after the event.