Systems thinking tells us that most of the errors people make are due to the system instead of the individuals. That is, good people make mistakes significantly more often in bad systems than they do in good systems. For examples, testers who are located away from the development group that are given their work in big batches will not do as good a job testing as testers embedded with the development group. This does not mean that people aren’t important. It actually means just the opposite – because people are important we don’t want to waste their time in bad systems and we need them to improve their current systems.
The approach therefore needs to be:
The value stream impedance (VSI) is a quantitative measure of the resistance work in a value stream faces. This resistance is due to several factors. These include how work to be done is selected, sized and sequenced, the organizational structure of the people doing the work and the way the people do the work. The contention is that the more impedance, the more extra work that is created. The key word here is extra. In other words, not only does the system slow us down, it creates additional, unneeded, work to be done as well. Examples of this is the thrashing that often takes place when software developed by different teams are integrated.
VSI is not a new concept. It is well established that work being coded in one location and tested in another takes more time to complete. Bugs are found late and the costs to fix them literally go up. The challenge in this situation is that the work does not flow well within the structure of the organization set up to do the work. On the other hand, a co-located, cross-functional team (e.g., proper Scrum team) has a very low impedance. I’ve long claimed that Scrum works because its organizational structure allows for work to be accomplished with little added waste.
Components of the Value Stream Impedance
The Value Stream Impedance measure is an attempt to quantify the challenges of a current value stream. There are several components to this overall measure. These are:
VSI is an attempt at an holistic method. One that can be used to guide Scrum teams, improve attempts to do Agile at scale, and caution those following the Kanban Method to not be overly myopic with it.
When Scrum teams are properly formed and manage their work properly, it is easy to see that the VSI for the value stream (at least that part within the Scrum team is very low). At the same time, because the VSI refers to the entire value stream, not just that part within the Scrum team, the VSI concept reminds us that merely looking at the team scope of the value stream is incomplete. Many Scrum evangelists forget this and assume the dynamics present in Scrum within a team are the same as those dynamics across Scrum teams. The fact that they are not has led to many failed attempts to Scale Scrum. Companies start with great teams but can’t get them to collaborate well due to the high VSI between the teams.
Calculating Value Stream Impedance
We can look at each of the factors that affect VSI provided earlier and attempt to quantify them to some extent.
The number and size of the work in the development teams input queue adds to the VSI the more there is:
How teams are organized will increase the VSI if:
How people are both geographically organized as well as who they report to will increase the VSI if:
The sequence that the work is done in adds to the VSI if requirements, analysis, design, code and test are done as separate steps. The larger amount of work done at each step will increase this due to slower feedback.
The amount of work in process (WIP) throughout the system. There are different degrees of WIP. This includes:
The less automation of tests, integration and deployment the greater the VSI because:
As the length of feedback loops for verifying assumptions and actions made increase, so will the VSI. This happens because:
As your technical debt increases, so will your impedance. This happens because:
Using the Value Stream Impedance Metric
It can be argued that the VSI Metric is not a real metric because it doesn’t yield an absolute number. However, each component of the metric has a strong correlation with the overall VSI. This does is not inconsistent with systems-thinking because the components are intertwined with each other in a strong positive loop when improvements are made and a strong negative loop when degradations are made. For example, increase the number of items in play will have adverse affects on the other components of the metric. This is one reason that Lean-Thinking is so useful – there are seldom tradeoffs between its core mantras. This enables even a qualitative measure of the VSI of a system to provide a useful indicator of the challenges that will be encountered in a value stream. Understanding what causes a high VSI enables us to take corrective action to lower it.
The initial ideas of the VSI grew out recognizing that virtually all of the pioneering ideas that Net Objectives has created over the years were created to improve flow. Typically we saw a challenge and understood the cause of the challenge was violating some Lean principle. We would come up with different ideas and those that reduced resistance to flow virtually always resulted in improvements.
Improving Your Value Stream Impedance
We can improve our value stream impedance by taking steps to reduce those structures, management, workflows and anything else that contributes to them. The following is a list of actions to take that can almost always lower VSIs. I have listed them in the order of the seven categories previously listed:
Size, priority and amount of work:
Remember, “Often reducing batch size is all it takes to bring a system back into control” – Eli Goldratt, creator of Theory of Constraints.
How teams are organized, geographically located and who they report to:
The Sequence the Work Is Done in:
Work Level Inside the team:
Increasing the following will decrease the VSI within the system:
Pay down your technical debt through:
All of the above will quicken feedback loops which will lower the amount of induced work.