Value streams and getting things done
It’s one of the biggest questions in software development: why on earth does it take so many people so long to get something done?
This is particularly true for large organizations with dozens or hundreds of teams trying to work together to deliver software.
I’m going to summarize what I’ve been learning over the past two years at eBay trying to answer this question, using the concept of a value stream as an organizing concept.
This is just a high-level starter kit. For a much richer, detailed, and nuanced understanding of these topics, I highly recommend the following reading list:
- Sooner Safer Happier
- Project to Product
- Team Topologies
- Accelerate
- The Principles of Product Development Flow
What is a value stream?
A value stream is the journey a customer makes from the first moment they contact your organiation to the moment they receive something they consider valuable and are willing to pay for. The diagram below shows a simplified example for a generic buyer and seller value stream.
The way to think of it is, what are all the steps and people involved, from start to finish, for us to enable a customer to receive value from us.
At most larger companies, you will have multiple value streams. At eBay we are primarily about connecting buyers and sellers in a marketplace. But we have specialized flows for particular product types. This means we have a different value stream (different people, sometimes different steps) for buying sneakers, one for someone buying auto parts and accessories, one for trading cards, and so on.
Developing software as a value stream
As a software development organization, a key aspect of the steps and people involved in delivering value is the actual work of shipping software to enable the user’s value stream. Below is a very simplified example of this flow.
You can see this is also a value stream — in this case it is the people and steps involved in delivering software that is then used by the end-to-end value stream experienced by the user.
To help distinguish between these two we often use the terms development value stream (the development flow) and operational value stream (the customer experience flow).
Both of them are crucial to understand.
In order to answer the question “why does it take so many people so long to build a feature?” you need to understand what’s impacting the flow of work in the development value stream.
But this question needs to answered in the context of deivering real value. If you don’t think about and enhance the entire customer experience holistically, you may be shipping software quickly, but you have no guarantee it’s of any use, and it may even be detrimental to your users and your business.
Aspects of a well-performing value stream
If you want to improve something, you need to be clear on how you measure improvement. The team from Sooner Safer Happier have come up with a very helpful way of looking at this: Better Value Sooner Safer Happier
Value
The core term here is Value — we need to identify what it is and how we measure it. As a marketplace, at eBay we look at how much merchandise is sold, as well how much we bring in as commission. Usually it’s some measure of top-line and bottom-line: revenue and profit. But how you go about measuring that is specific to your business.
Note we are not talking about features or units of work. If you can deliver more value with a smaller number of features, all the better.
It is easier to see features getting shipped than seeing the actual impact of those features, so it’s easy to get into this mindset. But we have to remind ourselves just shipping stuff is not the point. Sometimes shipping lots of features can even reduce value if those features are just introducing more confusion and muddying up the experience.
Better
This is about the quality of the experience. Poor quality will ultimately impact value, but it’s an important leading indicator of the health of your business, and you want to keep an eye on this separately.
Measures of quality include change failure rate, time to recover, performance, availability, reliability, and customer satisfaction.
Sooner
This is about that question “why does it take so long?” Why is this important? Because there are large and numerous costs to delays. When you are able to deliver value quickly, you are able to recognize value sooner, you reduce the cost of delivering software, and you are more able to learn, adapt and compete.
Research has also shown that delivering real value sooner increases how engaged and motivated everybody is — they feel the impact of what they’re doing and know it makes a difference, and they don’t feel like they’re wasting their time and energy as much.
“Sooner” can be broken down into two key measures: lead time and throughput.
Lead time
This measures the time it takes you to deliver a new unit of value into your value stream from start to finish (concept to cash).
If you think of your value stream as a freeway from San Francisco to LA, this measures how long it takes for a car to go the whole way.
It’s important to recognize what it means to ship a “unit” of value. This means that the change we make has visible positive impact on our measure of value.
Throughput
This captures the amount of value you are delivering over a given time period. In the freeway analogy, this would be the number of cars arriving in LA over a given time period. In the Flow Framework model this is called flow velocity.
Additional measures
There are two additional measures that can help you understand how to improve your lead time and throughput: flow efficiency and flow load.
Flow efficiency
This measures how much waste is in your system. This is usually done by understanding how much time an item of work is sitting idle versus how much time it is being actively worked on. The more idle time, the lower the efficiency. If you have a low flow efficiency, this is directly impacting either your lead time or throughput, and probably both.
Flow load
This measures the amount of work currently in your system.
Why is this important?
A common belief is that we are being inefficient if our teams are not fully allocated with work.
But this is a very dangerous and counterproductive belief. Queing theory shows that as you approach 80% capacity, the time it takes for something to get done exponentially approaches infinity.
Looking at this in another way, if you pile on too much work in a value stream, the team gets overwhelmed, and it takes forever for anything to get done.
Think of the tipping point that happens on a very busy freeway — one small hiccup and traffic grinds to a halt.
This is why it is so important to keep an eye on your flow load.
Safer
Safety is an important aspect of a value stream. It’s not enough to have better value sooner if it introduces significant risk for high impact incidents.
What you want is a value stream that is continually addressing safety from start to finish. Teams that catch safety issues only at the end tend to get stuck doing a lot of redesign and rework.
Another key aspect of safety is psychological safety. Multiple investigations into high profile incidents have shown that teams that report zero or a very small number of risk issues tend to be the ones who encounter large, high impact incidents. It turns out this was because the working culture did not allow people to feel safe to report issues when they saw them.
Psychologically safe teams also tend to innovate more and be more engaged and happy, which leads us to the next measure of the quality of a value stream.
Happier
This is about the happiness, or delight, of both your customers and your team. Both are essential for success.
Common measures of these are Net Promoter Score (NPS), Customer Satisfaction, Employee Net Promoter Score, and employee Psychological Safety
Coming Next…
Now that I have shared what a value stream is, and how you can measure how well your value stream is performing, in my next article I’ll talk about some common impediments I have seen that get in the way of a value stream being able to deliver great value sooner, safer and happier.