Value stream mapping, or VSM, denotes a technique for visualizing individual project processes to identify and eliminate waste. DevOps organizations often use VSM to reduce bottlenecks in the software development life cycle (SDLC). In this blog, we’ll outline the value stream mapping steps that can help you improve the flow of your SDLC and release products faster.
The value stream mapping steps for DevOps include:
First, you need to brainstorm a list of potential processes which could most benefit from VSM. You need to prioritize these processes based on how critical they are to your organization, how much waste is involved, and how easy the potential fixes would be. Your first value stream mapping process shouldn’t necessarily be the most complex or high-value, but rather one that has clearly identifiable steps, goals, and issues. This increases your chances of success, helping you build momentum for your next VSM and gradually learn how to tackle more challenging processes.
Your VSM team should include representatives from every cross-functional team involved in the process. This will ensure that you have a complete picture of your processes and that you address issues from multiple perspectives.
Now you need to map each of the steps within the selected process. Generally, the best way to accomplish this is by starting with a new project so you can monitor and document each step and handoff as they occur.
When mapping the process’s activities, you should also collect and record data, including:
This process data will provide additional context about where project waste occurs.
Once your software has been released, it’s time to turn your list of steps and process data into your visual value stream map. Doing so will establish a complete timeline of each individual step and the entire project.
You’ve completed a VSM, but the hard work is just beginning. Now, you need to analyze your VSM [link to Understanding Value Stream Analysis And Its Impact On Your Systems (Publishing on 7/19)] to identify the problem source(s). Then, you must determine how you will attempt to solve these problems to reduce waste in your SDLC.
You may find it helpful to use the Theory of Constraints (TOC) to narrow in on sources of waste and develop solutions to those issues. The TOC states that every process has a constraint (a.k.a., a bottleneck) that affects its efficiency. Without addressing that constraint, you’ll never reach peak efficiency, no matter how many other areas you optimize.
The Theory of Constraints was initially conceptualized as a lean manufacturing methodology, but like many other lean techniques (including value stream mapping), it’s been successfully adapted to DevOps software development. In that context, the TOC offers two methods for identifying and solving problems in your SDLC:
The Five Focusing Steps are designed to help you identify and eliminate constraints. They include:
Identify
Identify the bottleneck in your process that is impacting efficiency.
Exploit
Use whatever means you have at your disposal to fix the problem.
Subordinate
Ensure your upstream resources and end-to-end process activities are aligned to help alleviate the constraint.
Elevate
If the constraint hasn’t been resolved, determine what further actions or resources are required to fix the problem. This step is often repeated until a true solution is identified and implemented.
Repeat
As with everything in DevOps, the Five Focusing Steps should be repeated so you can continuously improve your processes.
Another way to use the TOC to identify and eliminate constraints in your SDLC is through the Thinking Processes. The Thinking Processes are designed to help you identify the root causes of undesirable effects (or UDEs) and then remove those UDEs without creating new problems. You use the Thinking Processes to answer the following questions:
The Theory of Constraints should help you determine how to take action based on the information gleaned from your VSM.
It’s important to remember that value stream mapping is not a one-and-done solution. After you’ve created your first VSM and used the TOC to identify and fix issues, you should create a second VSM for a future project or iteration. This VSM will visualize the new processes and resources that you’ve put in place based on what you’ve fixed and learned in the previous iteration. Your new VSM will be a living document that you update and change as you continuously improve and optimize your SDLC.