Agile Kanban in Theory
I was chatting with some Agile practitioners yesterday. We discussed the implementation of Kanban. As the facilitator, I didn’t have the opportunity to share all of my thoughts. Kanban has found a home in many non-manufacturing workflows. It is well-suited for multi-stage processes in which hand-offs are necessary.
In a manufacturing environment, Kanban delivers two primary outcomes: reduced inventory and demand-driven output. The process is adapted based on the type of products produced. Assuming we’re talking about small parts such as fasteners, Kanban uses standard totes. Each tote gets a card when it needs to be filled with parts. These cards are generated by the demand for the part. Modern production management systems may substitute permanent barcodes on each tote tied to a status in the system.
Totes are “pulled” through each work cell in the production process. In this manner, the demand for three totes of product triggers is requested at the last work cell, which triggers a request to the penultimate work cell, and so on, right back to the first work cell in the process. When totes are already queued anywhere in the production workflow, the trigger stops there.
Each work cell processes one tote at a time. This is referred to as WIP (work in process) of one. It’s an essential mechanism for flexibility and efficiency. It should not come as a surprise that Agile practice borrowed these ideas from Lean.
The principle called the theory of constraints compliments Kanban by helping manage bottlenecks. When one work cell in the production workflow takes longer than the others, it regulates the speed of up and down stream work cells. In some situations, buffer stock is used to mitigate the slowdown effect.
Agile practitioners learn Kanban as a strict practice with predetermined constraints, which in my experience, leads to Agile anti-patterns. I have found that Kanban principles work well in two team situations:
The work of the team is very dynamic, meaning that its composition and priority are constantly changing based on external drivers
The team's work is very task-oriented rather than an incremental effort towards a larger objective (e.g., desktop computing support teams).
In these situations, sprints offer less value. Rather than having a predetermined work package selected to deliver specified customer value, Kanban allows teams to develop a continuous flow that ensures the highest priority work is always at the top of the queue. Kanban teams must create a method of continually evaluating the priority of the work in their queue.
For non-manufacturing teams, maintaining the flow of high-priority work is the key benefit of Kanban. The other practices of Kanban are essential in a manufacturing environment but are optional in different situations. Agile teams need to maintain their flexibility in how they implement Kanban. Start simple, inspect, and adapt. Whether a team implements Kanban should not be an organizational decision but rather a team decision. Organizations striving to be Agile encourage full team autonomy in their work.