I have heard a lot about Value Stream Mapping and how it can be used to analyse the value stream of manufacturing processes including the process of delivering software. I have never seen it successfully delivered in the context of software development and operations teams.

What is Value Stream Mapping and how can it be applied to software delivery?


A value stream is a process that adds value to a collection of things that have less inherent value. The canonical example there is an assembly line. I have little interest in a disconnected collection of parts (steering wheel, shifter, gas pedal.) On the other hand, I'll pay good money for a car. Car manufacturers add value to the parts in the form of facilities, skilled work, supply chains, etc. Parts go in one end of the stream, cars come out the other.

Enterprises use complex processes to deliver their products and/or services. Value stream mapping is a process used by companies to figure out how and where they deliver value. The purpose of value stream mapping is to develop a clear understanding of the steps, time, and resources required to support a business capability that delivers value.

Value stream mapping is useful in kaizen, or Continuous Improvement. The "systems thinking" employed in DevOps and Lean encourages small, incremental improvements made throughout a complex process. A value stream map can expose areas of waste, such as unnecessary or inefficient steps in a value stream. A complete map tends to expose those areas of waste. This helps prioritize improvements.

Value Stream Mapping can be applied at large scope to a business process, or to a smaller scope within software delivery. The software delivery process itself mirrors an assembly line. Code is written, reviewed, tested, integrated, and tested again. It is delivered from one environment to another (in manufacturing this is called a work center) until it is finally delivered to Production.

  • Can you clarify how value stream mapping would get applied to software? Is it about the way that chef, docker, jenkins, git, and aws all work together and perhaps making sure you aren't using git + svn if it's not necessary, or more like how the various google products all enhance their advertising business? – avi Mar 2 '17 at 13:59
  • A software delivery value stream is made of both technology and process. The "beginning" of a cycle could be a project plan to create a new system or modify/enhance an existing one (greenfield/brownfield.) The process continues with process to initiate work, track the work, execute, and deliver. All the steps required to deliver working software, both human and automated, are part of the value stream. – Dave Swersky Mar 2 '17 at 15:16
  • As well as trying to clarify a point of confusion, I was hoping you would modify your answer to include a concrete example. – avi Mar 2 '17 at 15:23
  • I think the next step toward the realization of VSM in SDLC will be integrated data analytics on the assembly lines, from specs to production. – Peter Jun 10 '17 at 12:14

What is Value Stream Mapping

A Value Stream Map is a representation of the flow of work, inventory and information from supplier to the customer through your organization. The VSM enables you to see at a glance where the delays are in your process, any constraints and excessive work or inventory.

For IT organizations, one common notation is that inventory is a number of tasks in the backlog. Joel Spolsky wrote an amazing article that explains and expands on this this concept.

Usually a VSM is a graphical chart that includes:

  • your customer
  • your supplier (if and when you use external contractors to do work)
  • the process inside of your organisation (what happens to items of work in your org.)
  • the feedback loops (customer asks for features, you communicate requirements to the supplier, etc...)

Why do Value Stream Mapping

In bigger organizations, when work is split into specialized cells - often the concept of the whole system is not in focus. This leads to problems like optimizing to local optima. For example, if you have a team that manages a Jenkins server and another team of developers who need to use it - the Jenkins admins can do improvements and work that looks good in their JIRA. But actually, hurts the developers using the system. In a Systems Thinking organization, people would work towards improving the system as a whole, not adding improvements that are local and either have no effect on the whole or hurt the process.

The purpose of a VSM is to provide optimal value to customers of the organization, with minimum waste in the value creation process (Lean). "Value" is what the customer of the organization is buying.

How to create a Value Stream Map

Creating a VSM has a goal of its own, improving the organization. Thus the first step is mapping the current flow of work and information. Next step is designing and implementing some improvements, and in the future continue iterating and improving as well. The VSM is a visual dashboard showing the work and measurements around it, so the bottleneck is clearly visible and can be controlled (using Theory of Constraints).

Steps to create a VSM based on the description in most Lean books:

  1. Specify the value from the standpoint of the customer.
  2. Identify the VSM for each product family (there can be more than one)
  3. Improve the flow of work.
  4. Establish pull. The customer can now pull work out of the VSM, not get pushed work from it.
  5. Iterate until perfection.

In an organization that is using Kanban to manage work, it is used to manage the pull of value from the customer standpoint. Unfortunately, often people don't really know how Kanban works and why it is defined as it is, so they use Kanban to push work onto customers (or the market) - this often leads to a lot of wasted work and frustrated people who don't see their work having an impact.

Great reference for further reading about the subject:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.