Agile Learning Series: Kanban

In this Agile Learning Series blogs, next, we will see Kanban approach in details.

Kanban means "Visual Sign-card" or "Bill-Board" in Japanese. The Kanban originally was developed by Taiichi Ohno in Toyota while creating Toyota Production System (a lean manufacturing approach).

Kanban was part of Toyota Production System. Kanban was created to solve the scheduling problems and enable Just-In-Time Production. Toyota initially copied the Ford Manufacturing processes successfully and installed a standard manufacturing approach. Toyota could not succeed financially (a crisis) by producing standard models and needed manufacture varieties in the conventional manufacturing line approach, so they have started redesigning the strategy and their thinking. Toyota kept a couple of important points for their mission, and they were 1) No Debt 2) No Inventory.

Taiichi Ohno (an industrial engineer) studied various approaches including the super-market pull model where they could utilize "what is required" for the customer (What, When and How much) and also a signaling approach to inform the upstream and vendors about the inventory required. Toyota emphasizes "Maximizing Customer Value, Minimizing Waste" through a continuous improvement process. Toyota's Lean Thinking known as "Toyota Production System" was highlighted in the research & book "The Machine That Changed The World" by James P Womack, Daniel T Jones, and Daniel Roos.

Kanban was utilized to enable a "Pull-system". Kanban was originally developed as physical Kanban model. In Software (David J Anderson) we have virtual kanban method and system.

David J Anderson has adopted Kanban system and also developed Kanban method by utilizing the Theory of Constraints (Drum-Buffer-Rope) model. There is also a suggestion of TOC, Demings Model, Lean Economics model for Software kanban.

Kanban can be implemented as a "Kanban System" or as a "Kanban Method" also, in Kanban method we focus on a particular section of the flow and improve within a boundary because of our limit of control and influence. In a Kanban system approach, the Kanban helps and facilitates signal to all the required contacts (like Vendors, Internal stakeholders) for preparing a smooth flow and providing required support, materials, resources for the flow.

Kanban helps to manage the supply-demand well. If we manage the capacity to an optimum level, the flow is smooth. If we occupy the full capacity, the flow will stagnant. We can see from the traffic example shown below.

Kanban helps us to manage a smooth flow by limiting the Work-in-Progress items in the flow. Thus the employees need permission to pull based on the limits set in that particular state of the workflow. If the work is not completed and correctly the work-item won't be able to move forward and also new work cannot be pulled in the state.

Kanban started in the software development and services as a simple evolutionary change method (D J Anderson)

Kanban is part of Lean Manufacturing system, and Kanban's primary purpose is to make strong connections to all required people and enable a pull-system instead of push to become a lean system. Kanban enables people to think at all levels and also enables leadership at all levels.

Kanban is also enabled "systems thinking" and optimizes end-to-end flow.

Understanding the Kanban concepts

Kanban Principles

1. Start with the current state (or what you do now)

2. Agree to pursue an incremental/evolutionary change

3. Respect the current processes, roles, responsibilities, titles

4. Encourage acts of leadership at all levels

Kanban Practices

1. Visualize the Workflow

2. Limit the Work-In-Progress

3. Manage the Flow

4. Make Processes & Policies Explicit

5. Implement Feedback Loops

6. Improve Collaboratively, Evolve Experimentally.

Implementing Kanban

Step1: Visualize the workflow

Visualizing the workflow is listing down the sequence of steps on a board or in an electronic format. Usually, we recommend choosing any one format to avoid duplication of efforts in updating and misunderstanding of status.

Step2: Limit the Work-in-Progress

The Team can set the Limit. Usually, it is advised to start with 1-2 per person on the team. Kanban considers groups of individuals who can work independently. However, in an agile team context, agile teams work together to achieve a goal and single-piece flow is very important. So, Keeping WIP limit 1 and increasing them can be a better choice.

Step3: Manage the Flow

Lean / Kanban promotes a healthy workplace and also respect for people and culture. The manage the flow shows transparently some state is progressing well or not, which needs everyone's attention to stop-and-fix instead of working in silos. Also, a work-item which is closer to the finish line considered for completion, than picking up a new item from the backlog.

Step4: Make Processes and Policies Explicit

Each process must be clearly understood, and everyone has a shared understanding of the processes. Policies must be explicitly available, either on the Kanban columns or with the Team area, the work proceeds in the right direction providing the highest value, highest quality and sustainably shortest lead time.

Step5: Implement Feedback Loops

The feedback loops approach is to collect information on how we are performing during the flow utilizing "Daily Meetings," e.g., Daily Standup. Weekly Review meetings, other required meetings that help to determine the quality, flow and value delivered.

Step6: Improve Collaboratively; Evolve Experimentally

(Use of Scientific methods and Models)

Improving collaboratively from end-to-end flow perspective is recommended that the local optimization, and we could see the overall optimization through "Throughput," quality and pace of the value-delivery by measuring and having meaningful conversations with the Kanban boards.

Improve collaboratively through addition of Retrospectives, Action items that can be added to Team's backlog for technical, non-technical improvements, learning topics, skills development, automation and many other growth oriented topics.

Cumulative Flow Diagram

Lead Time & Cycle Time

Flow Efficiency

CFD is useful in understanding the Overall Work-In-Progress and Lead Time (comes from Queueing Theory).

Lead Time: The total time taken from "Concept to Cash"

Cycle Time: The Processing Time of the actual work.

Flow Efficiency: Calculation of the ( total value creation time / total value + total delays time ) * 100