Value Stream Mapping session (source)
Creating value for the customer is essential in any business. You want to be sure that you are maximizing the value you create for them through your development process. The DevOps methodologies aim to build a fast and reliable software delivery process. When adopting this paradigm, you must reassess your existing process and look for inefficiencies.
One way to do this is by using Value Stream Mapping (VSM). This involves gathering people from all parts of the product development process, including the business line, design, testing, QA, operations, and support. Doing so can give you a clear picture of where value is being created and lost.
Value Stream Mapping is centred around a colour-codded map that describes your process and measures its efficiency as the ratio of value-added steps over all the steps of the process.
What is value stream mapping, and why is it important?
Value stream mapping is a useful tool for understanding how value is created and lost (wasted) in a product development process. This method was invented in the context of industrial engineering to make production lines more efficient and Lean.
By gathering people from all parts of the value stream, you can get a clear picture of which step in the process contributes to creating values and which are potential waste. Collecting this information can help you optimize the development process and provide a visual way to explain the process and why a step of the process exists in the first place.
In the context of Lean Manufacturing, Value Stream Mapping is an improvement Kata. An improvement Kata is an iterative process conducted by small and rapid experiments to improve an organisation’s process. The Value Stream Mapping methodologies are built around the four steps of the Improvement Kata:
How to create a Value Stream Map
Creating a value stream map is fairly simple. You first need to gather people from all parts of the product development value stream, including the business line, design, testing, QA, operations, and support. This step is called mapping the process.
It is important to decide on the boundaries of the value stream map. The value stream map should not aim to map all a company’s processes. In the case of software engineering, this decision is fairly simple you often build a map from feature ideation to release to production.
After you have decided on the boundaries of the value stream map, you will need to start documenting everything that happens in the value stream. This includes conducting interviews or workshops where you invite people to complete the map with the steps of the process they know of. This should lead to a map like the one below.
The final step is to use the information gathered and distinguish the different types of steps in the process. You distinguish the valued step from the rest at that step. With this information at hand, you can create measures of the processes that will serve as references.
Value added task: product or service which the customer is willing to pay for it or is compliance/regulatory time
What you can learn from value stream mapping
The value stream map can also help you track the progress of your improvement efforts by providing a visual representation of the changes made to the process. Additionally, the value map will be used to calculate different metrics and compare the result of your experiments. Concretely on top of the logic and obvious waste, you will use a key performance indicator (KPI) to analyse each step in more detail:
You should not be afraid of making changes. Once you have the map and identify waste, you should collect metrics such as How much time it takes to get from step D to step G. Implement the change that you think will improve the situation and measure the result of the improvement.
Did the change you made reduce the time it takes to go from step D to step G? If not, then move on and design a new solution based on the lessons you learned.
Thought about VSM in the Software Industry
Value Stream Mapping is popular in the Lean manufacturing communities. The idea is that you can use value stream maps to visualize and improve the flow of value without being transposable to the software industry. In a way, the software delivery pipeline is much simpler than what you could find in the manufacturing world. Asa result, implementing VSM should be straightforward.
By creating a value stream map and tracking the changes made to the process, you can see how your improvements are impacting the flow of value through the system. This can help explain the change when they are made simply and visually.
The definition of a value-added task is quite difficult in the context of software engineering. We should think about it to see if we can reduce the number of steps in the process but not spend too much time on it.
The Percent complete and accurate (%C/A) metric is a powerful metric to drive improvement. However, the goal is not to reach 100%, this would kill any kind of iterative process.
@startuml actor User as u node "Design & Analysis" as da node "Planning" as plan node "Development" as dev node "Deployment to test environment" as test node "Demo and UAT" as demo node "Performance testing" as perf node "Deployment to production" as prod u --> da da --> plan plan -> dev dev -> test test -> demo demo -> perf perf -up-> prod note "LT: 10d\nPT: 6d\n%C/A: 50%" as n0 n0 .-right- da note "LT: 2w\nPT: 1d\n%C/A: 50%" as n1 n1 .-up- plan note "LT: 1d\nPT: 1d\n%C/A: 50%" as n2 n2 .-up- dev note "LT: 1d\nPT: 1d\n%C/A: 50%" as n3 n3 .-up- test note "LT: 2d\nPT: 3d\n%C/A: 90%" as n4 n4 .-up- demo note "LT: 1d\nPT: 1d\n%C/A: 90%" as n5 n5 .-up- perf note "LT: 1d\nPT: 1h\n%C/A: 90%" as n6 n6 .-> prod @enduml