As you saw in the previous chapter, Kanban is a methodology that improves output by reducing flow through a system. Typically, the output increases when fewer items are worked on simultaneously, although the right amount of work in progress (WIP) will vary for each team and system. Kanban helps you find the right workflow and WIP limits by giving you data to influence your system design.
Kanban limits WIP and uses a highly visual board to allow team members to observe how items move through their workflow. This method has become popular over the last decade or so, although it originates in the 1950s. The modern use of Kanban in technology started around 2004.
Discover The Toyota Story
In the 1940s, Toyota researched improving their factory and found inspiration from an unlikely source: supermarkets!
In a supermarket, customers take a product from the shelves and buy it when they need it (not before and not after). When an item is almost out of stock, the supermarket employees order more. This is a "just-in-time" way of keeping the right amount of products on the shelves. Rather than ordering a large quantity of one particular product, supermarkets tend to order smaller amounts and reorder when stocks are low. Thus, Kanban reduces waste and inefficiency by not having too much product.
Toyota engineers applied a visual management system by using cards on a bulletin board to show the steps in their manufacturing process. Because the system was displayed visually, the engineers could communicate more effectively on what work needed to be done and when. With the goal of reducing waste (in this case, items of partially completed inventory in the system waiting to move down the production line), the engineers would plan their work, so each step of production was applied just-in-time for each item in the factory.
Around 2003, people such as Mary and Tom Poppendieck, David Anderson, Jim Benson, and others began publishing books about applying lean principles based on the Toyota system to other fields, including software development. This created a modern application of Kanban in the software development field. Today, many different frameworks based on Kanban principles have similar but different components and definitions.
Identify the Key Elements of Kanban
There are six key elements in Kanban:
Limit work in progress - Rather than working on 20 features at the same time, it is better to focus on starting, finishing, and releasing a smaller number (say five). With fewer items, you spend less time producing them. You can finish quicker than when you focus on a large number of items simultaneously. The time from beginning a feature, or a task, to its completion, is reduced and customers see value sooner.
Manage flow - Flow is the concept of moving items quickly through the system. Teams manage their flow by tracking how long an item spends in each possible status (how long it is waiting to be tested, how long before someone starts work on it, etc.). Reducing these times becomes a team goal.
Feedback loops - Taking time to reflect on what is working and considering improvements is vital in Kanban.
Improve/evolve - Continuous improvement is a core concept in Kanban. A culture of running experiments and trying to improve and evolve is essential.
Visualize - The team is empowered to make effective decisions when the work is visible using a board that shows the status, bottlenecks, and system limits.
Explicit policies - You can't improve something that you don't understand. Any policy that relates to status updates enables the team to effectively decide if a given task is suitable to be worked on and when the status has changed.
Below is a visualized image of the Kanban framework. Note that all of the individual elements must be taken into account to achieve the centralized goal.
Use a Kanban Board
Perhaps the most important factor in Kanban's effectiveness is that all work items and their statuses are shown on a board.
Kanban is a Japanese word that means billboard or signboard.
You can check the status of an item by seeing which column it's in. Teams decide which columns make sense for their workflow. Therefore, a Kanban board can vary from team to team.
When the status of an item changes, a team member will move it into another column. For example, if you decided to work on an item called "New login button," then you would move its card from the "To-Do" column to the "In Progress" column.
At the very least, you can expect a column/status for:
Tasks "To-Do" (i.e., not started)
Tasks "In Progress"
Tasks that are "Ready to Test"
Tasks that are "Done"
Note that limits are shown in red circles above certain columns. For example, a 3 above the To- Do column indicates that only three items can be in that particular section at one time. The In Progress column is limited to two items.
Craft your Personal Kanban Boards
Another application of Kanban is to manage your personal to-do list.
To-do lists are a set of tasks with different statuses (those you have to do, those you are currently working on, and those that are completed).
I use Trello to manage my list of personal tasks. To give you an idea of what that looks like, you can see an example in the screenshot below.
Trello is a communication tool that organizes projects into boards. The benefit of working this way is that you can see at a glance what is being worked on by whom.
Trello allows you to create lists that appear horizontally from left to right. Adding new cards is like adding items. New cards appear vertically, one beneath another from top to bottom.
Lists often represent status and are updated by dragging an individual card from one to another. For example, imagine if you had a to-do list, items that were in progress, and a list of items that were done. In Trello, you would drag a given card from the In Progress to the Done list to indicate the change in status for this work item.
The below diagram is simple visualization of the process. Each tile labeled CARD can potentially be moved either left or right to suit your project.
Let’s Recap!
Kanban is a framework or strategy that optimizes the flow of value through a system. Optimization may be defined as a workflow that is effective, efficient, and predictable. One way it does this is by limiting the amount of WIP for the system, which creates a pull model.
Kanban has six key elements:
Limit work in progress
Manage flow
Feedback loops
Improve/evolve
Visualize
Explicit policies
The Kanban board is important to visualize work status and understand what work to prioritize next. Let's get some practice using Kanban in the next chapter!