The Kanban Method, as formulated by David J. Anderson, is an approach to incremental, evolutionary process and systems change for organizations. My layman’s way of describing Kanban is that it is
- a way to organize the chaos that surrounds so many delivery teams by making the need for prioritization and focus clear.
- a way to uncover workflow and process problems so you may solve them in order to deliver more consistently to your client/customer/etc.
Kanban accomplishes these things by introducing constraints into the system to optimize the flow of value. Flow is king.
Just remember that you want to focus on the flow of VALUE! If you have great flow but what’s being sent through isn’t valuable then your work has been for naught.
If you can’t get your business value flowing out the door consistently, your business is not performing optimally. In addition to the above, by focusing on flow, Kanban resets your brain to value finishing over starting.
Stop starting and start finishing!
It sounds like common sense right? Well, if you’re like most developers you have been conditioned into associating your value with what you have started. Kanban reminds you to stop starting and start finishing!
Kanban has 9 things you need to know. They are broken down into four basic principles (how you need to think) and five for properties (what you need to do).
Basic Principles
1) Start with what you do now
The Kanban method does not prescribe a certain setup or procedure. You can overlay Kanban properties on top of your existing workflow or process to bring your issues to light so that you can introduce positive change over time. This makes it very easy to begin a Kanban implementation as you do not have to make sweeping changes.
2) Agree to pursue incremental, evolutionary change
The Kanban method is an approach to change management that is designed to meet minimal resistance. Therefore it encourages continuous small incremental and evolutionary changes to your current system. Sweeping changes are discouraged because they generally encounter increased resistance due to fear or uncertainty. I call it “baby steps to awesomeness!”
3) Respect the current process, roles, responsibilities & titles
Kanban recognizes that there may be value in the existing process, roles, responsibilities, & titles. You have existing pieces in the way you do what you do that are working properly and worth preserving. Kanban doesn’t prohibit change, but it doesn’t prescribe it either. If you do make changes, Kanban encourages incremental change. Incremental change doesn’t create the level of fear that impedes progress, which allows you to generate broader support for your Kanban implementation. It also makes it easier to implement Kanban. Small course corrections are also just inherently easier than altering the complete process.
The first three principles were chosen specifically to avoid emotional resistance to change – David J Anderson
4) Encourage acts of leadership at all levels
Say hello to the newest Kanban method basic principle! It is something that is espoused in many methodologies and the Kanban method is no exception. You don’t need to be a team lead or an executive to be a leader. Some of the best leadership comes from everyday acts from people on the front line of their respective teams. Everyone needs to be fostering a mindset of continual improvement (kaizen) to reach your optimal performance as a team/department/company. This can’t be a management level activity.
Core Properties
In his book, Kanban – Successful Evolutionary Change for your Technology Business, David Anderson identified five core properties that he consistently observed in successful implementations of the Kanban method.
1) Visualize the workflow
You have to understand what it takes to get an item from request to completion. The goal of Kanban is to make positive change to optimize the flow of work through the system. Only after understanding how the workflow currently functions can you aspire to improve it by making the correct adjustments. Making changes before you understand your workflow is putting the proverbial cart before the horse and can cause you to make choices that are, at best, unhelpful and, at worst, harmful.
The most common way to visualize your workflow is to use card walls with cards and columns. Each column on the wall represents steps in your workflow.
I also like to recommend that you take this one step farther and visualize your incoming work requests. The ways in which this can be done are as varied as the workflows you might see out in the wild. For transactional work, the 4 categories defined by cost of delay as explained in David Anderson’s book Kanban – Successful Evolutionary Change for your Technology Business:
- Expedite
- Fixed Date
- Standard
- Intangible
For project work, other criteria such as market risk might provide more information when classifying work. Commonly used market risk categories include:
- Differentiators
- Spoilers
- Cost reducers
- Table stakes
The big thing to remember is that there is no one right workflow or one right way to categorize your requests. Kanban doesn’t prescribe a specific workflow. If I were to poll 5 different people from five different companies or groups, I could end up being presented with five different workflows and that is OK.
2) Limit WIP
Limiting work-in-progress implies that a pull system is implemented on parts or all of the workflow. The critical elements are that work-in-progress at each state in the workflow is limited and that new work is “pulled” into the next step when there is available capacity within the local WIP limit. These constraints will quickly illuminate problem areas in your flow so you can identify and resolve them. Limiting WIP is the cornerstone of Kanban.
3) Manage flow
The whole point of implementing a Kanban system is to create positive change. Before you can create that change you have to know what to change. You figure that out by looking at how value is currently flowing through the system, analyzing problem areas in which value flow is stalled and defining, then implementing, changes. Then, you repeat the cycle to see what effect your changes had on the system because you need to know if the change you made had a positive or negative impact on the things you were attempting to change. You are never finished. To use a cliche, it’s a journey. Something I read recently said that when you fix your first issue, your second one gets a promotion. I think that’s an awesome reminder that we should always strive to make progress.
Check out my blog post about a key metric called Flow Efficiency!
4) Make Process Policies Explicit
As I noted in “Visualize your workflow” above, you can’t improve something you don’t understand. The process needs to be defined, published and socialized — explicitly and succinctly. Without an explicit understanding of how things work and how work is actually done, any discussion of problems tends to be emotional, anecdotal and subjective (AKA a knee-jerk reaction). When everyone really understands what you are doing now and what your goals are, then you can begin to make decisions regarding change that will move you in a positive direction. The choices will be more rational, empirical, objective discussion of issues. This is more likely to facilitate consensus around improvement suggestions.
An example of a policy that you can make explicit is a definition of done. In fact, you can have a definition of done for each step in your workflow, meaning that before an item can be ready to pull forward, it has to meet certain criteria. Some tools, like LeanKit, allow you to do this in your electronic board, which I think is cool. If you have a manual board, well its easy to do there as well.
5) Improve Collaboratively (using models & the scientific method)
As discussed, the Kanban method encourages small continuous, incremental and evolutionary changes that stick. You may hear the word Kaizen when you read about Kanban. Kaizen is a word generally meaning continuous improvement. Kaizen is a key part of using Kanban effectively.
If you are not continually improving, but you are doing all of the other parts of the Kanban method, you are missing the point. Its a little like the concept of “doing” Agile but not being agile.
When teams have a shared understanding of theories about work, workflow, process, and risk, they are more likely to be able to build a shared comprehension of a problem and suggest improvement actions which can be agreed by consensus.
The Kanban method suggests that a scientific approach is used to implement continuous, incremental and evolutionary changes. There are various models that you can use, including:
- The Theory of Constraints (the study of bottlenecks)
- The System of Profound Knowledge (a study of variation and how it affects processes)
- Lean Economic Model (based on the concepts of “waste” (or muda, muri and mura))
Summary
Regardless of the models you use, you need to have regular feedback loops! I think that some now break this out into its own item and the five core properties become six core practices. Separated or not, its crucial to success. This feedback isn’t limited to responses from people. This can include analyzing metrics, getting team comments, customer reviews, etc. Feedback is anything that gives you input on how your process is working. I will go as far as to say that if you don’t have feedback you are not trying to improve. You are throwing something against a wall to see if it sticks.