Value Stream Mapping (VSM) is a -very- useful tool to gain insight in the workflow of a process and can be used to identify both Value Adding Activities and Non Value Adding Activities in a process stream while providing handles for optimizing the process chain. The results of a VSM can be used for many occasions: from writing out a business case, to defining a prioritized list to optimize processes within your organization, to pinpointing bottlenecks in your existing processes and gain a common understanding of process related issues.
When creating a VSM of your current software delivery process you quite possibly will be amazed by the amount of waste and therefor the room for improvement you might find. I challenge you to try this out within your own organization. It will leave you with a very powerful tool to explain to your management the steps that need to change, as it will leave you with facts.
To quickly get you started, I wrote out some handles on how to write out a proper Value Stream Map.
In many organizations there is the tendency to ‘solely’ perform local optimizations to steps in the process (i.e. per Business Unit), while in reality the largest process optimizations can be gained by optimizing the area’s which are in between the process steps and do not add any value to the customer at all; the Non Value Adding activities. Value Stream Mapping is a great tool for optimizing the complete process chain, not just the local steps.
The Example – Mapping a Software Delivery Process
Many example value streams found on the internet focus on selling a mortgage, packaging objects in a factory or some logistic process. The example I will be using focuses on a typical Software Delivery Processes as we still see them today: the ‘traditional’ Software Delivery Process containing many manual steps.
You first need to map the ‘as-is’ process as you need this to form the baseline. This baseline provides you the required insight to remove steps from the process that do not add any value to your customer and therefor can be seen as pure waste to your organization.
It is important to write out the Value Stream as a group process (a workshop), where group-members represent people that are part of the value chain as it is today*. This is the only way to spot (hidden) activities and will provide a common understanding of the situation today. Apart from that, failure to execute the Value Stream Mapping activity as a group process will very likely reduce the acceptance rate at the end of the day. Never write out a VSM in isolation.
Value Stream mapping is ‘a paper and pencil tool’ where you should ask participants to write out the stickies and help you form the map. You yourself will not write on stickies (okay, okay, maybe sometimes … but be careful not to do the work for the group). Writing out a process should take you about 4 to 6 hours, including discussions and the coffee breaks of course. So, now for the steps!
* Note that the example value stream is a simplified and fictional process based on the experience at several customers.
Step 0 Prepare
Make sure you have all materials available.
Here is a list:
– two 4 meter strokes of brown paper.
– Plastic tape to attach paper to the wall
– stickies square multiple colors
– stickies rectangle multiple colors
– small stickies one or two colors
– lot’s of sharpies (people need to be able to pick up the pens)
– colored ‘dot’ stickies.
Step 1 & 2 define objectives and process steps
Make sure to work one process at a time and start off with defining customer objectives (the Voice Of Customer). A common understanding of the VoC is important because in later stage you will determine with the team which activities are really adding to this VoC and which steps are not. Quite often these objectives are defined in Time, Cost and Quality. For our example, let’s say the customer would like to be able to deliver a new feature every hour, with a max cost of $1000 a feature and with zero defects.
First, write down the Voice of the Customer in the top right corner. Now, together with the group, determine all the actors (organizations / persons / teams) that are part of the current process and glue these actors as orange stickies to the brown paper.
Step 3 Define activities performed within each process step
With the group, per determine the activities that take place. Underneath the orange stickies, add green stickies that describe the activities that take place in a given step.
Step 4 Define Work in Progress (WiP)
Now, add pink stickies in between the steps, describing the number of features / requirements / objects / activities that is currently in process in between actors. This is referred to as WiP – Work in Progress. Whenever there is a high number of items waiting to be processed, you probably have identified a bottleneck which might cause the process ‘flow’ to stop or slow down.
On top of the pink WiP stickies containing particular high WiP levels, add a small sticky indicating what the group thinks is causing the high WiP. For instance, a document has to be distributed via internal mail, or a wait is introduced for a bi-weekly meeting or travel to another location is required. This information can later be used to optimize the process.
Note that in the workshop you should also take some time to finding WiP within the activities itself (this is not depicted in this example). Spend time on finding information for causes of high WiP and add this as stickies to each activity.
Step 5 Identify rework
Rework is waste. Still, many times you’ll see that a deliverable is to be returned to a previous step for reprocessing. Together with the group, determine where this happens and what is the cause of this rework. A nice additional is to also write out first-time-right levels.
Step 6 Add additional information
Spend some time in adding additional comments for activities on the green stickies. Some activities might for instance not be optimized, are not easy to handle or from a group perspective considered obsolete. Mark these comments with blue stickies next to the activity at hand.

Add additional information
Step 7 Add Process time, Wait time and Lead time and determining Process Cycle Efficiency
Now, as we have the process more or less complete, we can start adding information related to timing. In this step you would like to determine the following information:
- process time: the real amount of time that is required to perform a task without interruptions
- lead time: the actual time that it takes for the activity to be completed (also known as elapse time)
- wait time: time when no processing is done at all, for example when for waiting on a ‘event’ like a bi-weekly meeting.
(Not in picture): for every activity on the green sticky, write down a small sticky with two numbers vertically aligned. The top-number reflects the process-time, (i.e. 40 hours). The bottom-number reflects the lead time (i.e. 120 hours).
(In picture): add a block diagram underneath the process, where timing information in the upper section represents total processing time for all activities and timing information the lower section represents total lead time for all activities. (just add up the timing information for the individual activities I described in previous paragraph). Also add noticeable wait time in-between process steps. As a final step, to the right of this block diagram, add the totals.
Now that you have all information on the paper, the following can be calculated:
- Total Process Time – The total time required to actually work on activities if one could focus on the activity at hand.
- Total Lead Time – The total time this process actually needs.
- Project Cycle Efficiency (PCE): -> Total Process Time / Total Lead Time *100%.
Add this information to the lower right corner of your brown paper. The numbers for this example are:
Total Process Time: add all numbers in top section of stickies: 424 hours
Process Lead Time (PLT): add all numbers in lower section of stickies + wait time in between steps: 1740 hours
Project Cycle Efficiency (PCE) now is: -> Total Process Time / Total Process Lead Time: 24%.
Note that 24% is -very- high which is caused by using an example. Usually you’ll see a PCE at about 4 – 8% for a traditional process.
Step 8 Identify Customer Value Add and Non Value Add activities
Now, categorize tasks into 2 types: tasks that add value to the customer (Customer Value Add, CVA) and tasks that do not add value to the customer (Non Value Add, NVA). The NVA you can again split into two categories: tasks that add Business Value (Business Value Add, BVA) and ‘Waste’. When optimizing a process, waste is to be eliminated completely as it does not add value to the customer nor the business as a whole. But also for the activities categorized as ‘BVA’, you have to ask yourself whether these activities add to the chain.
Mark CVA tasks with a green dot, BVA tasks with a blue dot and Waste with a red dot. Put the legend on the map for later reference.
When identifying CVA, NVA and BVA … force yourself to refer back to the Voice of Customer you jotted down in step 1 and think about who is your customer here. In this example, the customer is not the end user using the system, but the business. And it was the business that wanted Faster, Cheaper & Better. Now when you start to tag each individual task, give yourself some time in figuring out which tasks actually add to these goals.
To give you some guidance on how you can approach tagging each task, I’ll elaborate a bit on how I tagged the activities. Note again, this is just an example, within the workshop your team might tag differently.
Items I tagged as CVA: coding, testing (unit, static, acceptance), execution of tests and configuration of monitoring are adding value to the customer (business). Why? Because all these items relate to a faster, better (high quality through test + monitoring) and cheaper (less errors through higher quality of code) delivery of code.
Items I tagged as BVA: documentation, configuration of environments, deployments of VMs, installation of MW are required to be able to deliver to the customer when using this (typical waterfall) Software Delivery Processes. (Note: I do not necessarily concur with this process.) 🙂
Items I tagged as pure Waste, not adding any value to the customer: items like getting approval, the process to get funding (although probably required), discussing details and documenting results for later reference or waiting for the Quarterly release cycle. Non of these items are required to either deliver faster, cheaper or better so in that respect these items can be considered waste.
That’s it (and step 9) – you’ve mapped your current process
So, that’s about it! The Value Stream Map is now more or less complete an contains all relevant information required to optimize the process in a next step. Step 9 here would be: Take some time to write out items/bottlenecks that are most important or easy to address and discuss internally with your team about a solution. Focus on items that you either tagged as BVA or pure waste and think of alternatives to eliminate these steps. Put your customer central, not your process! Just dropping an activity as a whole seems somewhat radical, but sometimes good ideas just are! Note by the way that when addressing a bottleneck, another bottleneck will pop up. There always will be a bottleneck somewhere in the process and therefor process optimization must be seen as a continuous process.
A final tip: to be able to perform a Value Stream Mapping workshop at the customer, it might be a good idea to join a more experienced colleague first, just to get a grasp of what the dynamics in such a workshop are like. The fact that all participants are at the same table, outlining the delivery process together and talk about it, will allow you to come up with an optimized process on which each person will buy in. But still, it takes some effort to get the workshop going. Take your time, do not rush it.
For now, I hope you can use the steps above the identify the current largest bottlenecks within your own organization and get going. In a next blog, if there is sufficient interest, I will write about what would be possible solutions in solving the bottlenecks in my example. If you have any ideas, just drop a line below so we can discuss! The aim for me would be to work towards a solution that caters for Continuous Delivery of Software.
Michiel Sens.
Xtremely useful!! Thanks a lot Michiel!
Great!
Is this applicable for a scrum team, where the roles are Product Owner, Scrum master, Product Management…testing is part of the scrum team. Its a cross functional team !
I would not use this for mapping the sprint-process within a scrum team as a lot of tasks there are related to the dynamics of a team at a particular moment. Applying an agile way of working can best be done/measured by making sure all members adhere to the ‘rules’. I/e: product owner should not interfere with team during sprint, daily stand-up not longer than 15 minutes, daily standup topics should be restricted to “what have I done”, “Where am I now”, “What will I be doing today” and “what are my impediments”, etc .. The way of working within a scrum team is dynamic / not rigid by nature so is hart to capture. I recommend using VSM for processes which are more sequential in nature and are more or less fixed overtime.
Excellent explanation
Great! I do it in exactly the same way!
However you calculate the PCE using CVA instead Total Process Time . Personally, I set times for activities in the dot’s. Then you know the ratios between CVA, BVA and NVA activities.
Hee Daniel. Nice addition. Thanks.
Youre welcome!
I also use my version of a yamazumi process modeling tool to calculate the ratios between VA, BVA en NVA.
Very nice article on the overall process Michiel. I found a tool by Bluespring that allows me to not have to manually calculate anything. Nothing beats butcher paper and post it notes during construction but I’ve found this tool very useful to document the flow, NVA, VA, waste, etc and it produces a bunch of various reports. Here’s a link to a blog on the Lean additions they’ve added if interested – https://www.bluespring.com/blog/bluespring-incorporates-lean-bpmn-itil-frameworks-processview
Really good. One of the most comprehensive explanation of VSM
Thank you, I wrote it so you can get at it straight away 🙂 Note that sometimes I shift the board 90 degrees which gives more headroom to map the process. Basically: roles on the vertical and the process mapped (in time) over the horizontal axis.
If you shoft the board by 90 degrees where do you draw “block diagram” you mentioned in step 7?
You can still do so, block diagram will span multiple tasks though. You can also take overall calculations offline (which is what I always do): each task has its process time and lead time described. I just add up all the numbers and perform calculation as described in this blog on a piece of paper of excel sheet.
Very interesting! Thx, Michiel!
But I have some questions. Maybe you can clarify:
Step 2: What I see on orange cards are roles or departments, but you’re talking about “process steps”. For example: “Business” ist step 1 and 7. But what’s “Business” doing, what’s its purpose at that point of the process? What’s it processing, what’s the transformation it adds to the overall process?
So what to do? Use roles/deptartments or come up with a headline for the activities subsumed in that column?
Step 4: Where does the WiP come from? Do participants count what’s on their desks right now regarding the processing step? What is it they count? User stories, features?
How come the are no WiP numbers for the columns, but only between columns? I’d assume the numbers between columns denote work sitting in a queue, i.e. not yet in progress.
You’re saying “Whenever there is a high WiP limit”, but where is there a limit? I just see numbers of actual work items, not a limit, ie. a number constraining what can be in progress or sitting in a queue. Or am I misunderstanding something?
I would understand if wrote “Whenever there is a high number of items waiting to be processed, you probably have identified a bottleneck.” (eg OPS/DBA P)
Step 7: Where do the times come from? Do people go back and look at the actual work items and muse about when they arrived on their desks, when they started to work on them, and when they think they’re gonna finish them?
Wouldn’t that require detailed tracking of times before the VSM can be drawn?
Thx for any help!
-Ralf
Hello Ralf, thank you for your comment. I hope I can clarify your questions:
For your question on step2: You are right in that the orange cards could be labeled as ‘roles’. Confusingly I named this ‘process steps’ as these were I identified in this example and assigned roles to it straight away. So agree: roles would be better. Note by the way that when I perform VSMs nowadays, I put roles on the left on vertical axis and put activities next to them. When doing so, you can better see sequence of activities following one after the other (sometimes, work flows from one role to the other).
For question on step 4: participants count what is on their desks right now. You want to see current state, because that reflects a real situation. The unit that is counted can be anything ranging from Use Cases to Files to cups of coffee (i.e. Starbucks), depending on the situation. You can apply VSM to multiple types of work. I think you need to think about what it is you are measuring. WiP numbers indeed can be in between activities … see my comment for step 2, which makes this easier to depict.
High WiP limit, should be read as high WiP, I will correct this. Thanks for notifying me.
Hello Ralf, thank you for your comment. I hope I can clarify your questions:
With regards to your question on step2: You are right in that the orange cards could be labeled as ‘roles’. Confusingly enough, I named this ‘process steps’ as these were I identified in this example and assigned roles to it straight away. So I agree: roles would be better. Note by the way that when I perform VSMs nowadays, I put roles on the left on vertical axis and put activities next to them. When doing so, you can see sequence of activities following one after the other (sometimes, work flows from one role to the other). I really recommend doing so.
For question on step 4: participants count what is on their desks right now. You want to see current state, because that reflects a real situation. The unit that is counted can be anything ranging from Use Cases to Files to cups of coffee (i.e. Starbucks), depending on the situation. You can apply VSM to multiple types of work. I think you need to think about what it is you are measuring. WiP numbers indeed can be in between activities … see my comment for step 2, which makes this easier to depict.
High WiP limit, should be read as high WiP, I will correct this. Thanks for notifying me.
For your question on step 7: yes, people will have to think about average timing here. This is not easy, but with experienced people at the table, this will be manageable. Note that this is not about exact numbers here, it is about identifying bottlenecks and optimizing your process. Most of the time estimates will do the trick and get you started. However, there are tools that allow you to actually measure VSM and process throughput: output of these type of tools are really powerful for measuring optimization & progress and will help you bringing your point across at for instance board meetings and such. Nothing beats actual measurements.
Thanks again for your message, Michiel.
Thx for your clarification. So what you’re doing now looks like this?
?dl=0
Blue: Roles/departments (swim lanes)
Orange: Process phases (columns)
Green: Phase activities
That way you can depict who is involved in which phase. The main process flow is from left to right. But also work is probably flowing vertically.
Yes, exactly, this way the diagram allows you to draw optional lines in between activities to show flow of work. Thanks!