What is a “Value Stream?”
A value stream is the sequence of steps required to produce value for the ultimate consumer of a product. If you want to make a sandwich, an interesting segment of the value stream might be something like the following:
- Select bread
- Select ingredients
- Place ingredients on bread
- Close sandwich
- Cut in half
Maybe I should have titled this section “What is a ‘Value Stream’ Not?” That is probably the more important question to answer. A value stream is not a customer’s or organization’s process.
If you are looking at a flowchart or a document that encodes an organization’s standard operating procedures, you are not looking at a value stream. Instead, you are looking at a system that is designed to support all the value streams that run through an organization.
Consider an absurdly simplified model of an insurance company. There are many ways to create customer value. The most obvious one is to pay a claim, fulfilling the company’s basic function of assuming risk for its customers. A less obvious one is to adjust a claim, keeping its costs down.
“How does not paying create value for customers?” you may ask. Well, by not paying unjustified claims, the insurance company creates value for its customers in the form of lower premiums.
The processes for paying, adjusting, and rejecting a claim are likely to be mixed together into a single flowchart or set of operating guidelines, as shown in Figure 1.
Note how, even in this extremely simplified case, the process is already complex. The real-world process would be so muddled that it would be hard to model all at once. The depiction of a value stream (as in Figure 2) is much more linear by comparison.
An artifact like that is easy to use for planning, adapting, communicating, and validating the high-level technical design of a system.
It is my recommendation that software architects pick a single value stream and use it to set the context for a set of long-term technical planning efforts, starting with the components and subsystems closest to value-creating steps and working toward the back of the system. In addition to setting context for your architectural endeavors, each step in a value stream map provides a concrete anchor from which you can justify elements of your system’s architecture.