Understanding the natural laws of software development (e.g., delays cause waste) can greatly improve the efficacy of frameworks or even make them unnecessary. Understanding Lean is facilitated by first understanding the core beliefs on which it is based, what to attend to given these beliefs, and what actions we want to take based on this understanding.
This enables Lean Thinking to be used by itself or to enhance frameworks and methods. All too often when a framework is used people focus on the framework more than the underlying principles that are effecting the work being done.
The bottom line is we want to achieve the following:
The Essence of Lean
At its most basic level, Lean can be considered to be a combination of:
The question is how do we use this to guide our decisions?
The Essence of Lean Thinking
Lean Thinking was defined by Womack and Jones as:
These concepts can be used to both define Lean Product Management as well as to define a method of implementing it.
Our focus is on delivering value. This is often mis-interpreted to mean just value to the customer – although the customer is the end target of the organization’s value. Sometimes value is in improving the organization to deliver value more quickly. The start, however, must always be how to Create Clarity on What Represents Value for the Business and Its Customers. For example, a financial company might focus on:
From this we can create our strategies and the initiatives intended to manifest them. These initiatives can be defined in terms of increments of business value to deliver.
When discussing value, both the beginning point (what we are trying achieve) and the ending point (when value is realized) come to mind. The value stream consists of all of the steps to g from the beginning (“concept”) to end (“realization”). We attend to the value stream because our focus is on the realization of value quickly, predictably, sustainably and with high quality. One of the key tenets of Lean is to focus on the work and workflow – not the individuals. This is a systems thinking point of view and represents a shift from focusing on people’s productivity to the time for delivery of value. This is epitomized in Don Reinertsen’s sage advice – “if you quantify only one thing, quantify the cost of delay.” Since value streams typically cut across different parts of an organization they must be managed. This is reflected in Edwards Deming’s advice – “A system must be managed. It will not manage itself. Left to themselves, components become selfish, competitive, independent profit centers, and thus destroy the system … The secret is cooperation between components toward the aim of the organization.”
Once we understand value and the path in which to realize it (the value stream) we must now consider how we go from concept to realization. What we want is to achieve flow. This is the uninterrupted process of creating value. Delays and rework are interruptions to flow. Delays directly stop flow but have the added side effect of creating additional work which also slows down delivery. Attention to flow means to attend to delays in workflow, feedback and value delivery. Flow is affected by the way people are organized into teams and the way teams collaborate together. The attention to flow and collaboration also means we must make all of our work visible so people can work well together.
The best way to manage work in process is to have an intake mechanism that restricts the work to be done by having teams pull the work from the backlog that is being controlled when they are ready. This is called “pull” because the teams pull the work from the backlog. This is the essence of Lean flow control and Kanban systems. To better control the intake process as well as to make it easier to sequence it, it is best to divide the business increments into the smallest chunks of value that can be realized that make sense from a business perspective. We call these Minimum Business Increments (MBIs). They incorporate virtually all of the SAFe concepts used in product management in a simpler, more effective manner.
Smaller batches also mean cuiqkcer completion and easier management. This last observation was made by Eli Goldratt when he stated – “Often reducing batch size is all it takes to bring a system back into control.”
Work in process can be managed by having a focus on finishing before pulling something else.
Perfection means more than striving for continuous improvement with an attitude of ‘inspect and adapt.” We must also rethink what we’re attempting to do with double-loop learning (that is, questioning what we’re even attempting to do, not merely trying to do it better). It also means to take an attitude of building quality in. This is more than test-first, it means when we see something is wrong we fix it. We don’t debate if it’s wrong enough to fix. Because we understand that systems cause most of our problems we take the attitude that something being done wrong is a symptom of a flaw in the system and that if we don’t fix it immediately it will cost us more fairly soon.
What to focus on
Work on small business increments of highest value
Our goal is to realize value quickly, predictably, sustainably and with high quality. Having smaller increments of value to realize will improve the efficiency of any system. Having these increments be of highest value will increase the effectiveness of our development organization. We therefore need to drive our process by selecting the right minimum business increments (MBIs) to work on.
Shorten the cycle time of MBIs
Clearly just having MBIs will shorten cycle time. But it is also important to shorten the overall time taken from start to finish by removing delays in workflow and feedback. Lean focuses on time – see Why Focusing on Time Is So important. Lean Thinking suggests that we allocate the capacity we have to shorten the time it takes to start and manifest value.
Shorten on the cycle time of the pieces of the MBI
MBIs are often composed of sub-components. It is best if these sub-components be build without delays in workflow or feedback from the start of one until its completion. In other words, it is better to have any required delays be between building a sub-components and not while you are building a sub-component.
Attend to Quality
Quality must be attended to. This quality includes the product, the design, the code, and the process (perhaps better called workflow and agreements). Without this we’ll build things of lesser value than things that are waiting to be built and we’ll take longer to build it than we need to.