As we saw in the previous chapter, Kanban is a project management methodology that improves output by reducing throughput or "flow" through a system. Overall output is increased when fewer items are worked on simultaneously.
Kanban limits works-in-progress and uses a highly visual status board to allow team members to prioritize tasks they can accomplish. This method has become popular in the software development and product management field over the last decade or so.
The Toyota Story
In the 1940s, Toyota researched making improvements to 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 was a "just-in-time" way of keeping the right amount of products on the shelves. Rather than order a large quantity of one particular product, supermarkets tend to order smaller amounts and then re-order when stocks are low. Kanban reduces waste and inefficiency by not having too much product.
Toyota engineers applied a visual management system by using actual 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 that are waiting to move down the production line) the engineers would plan their work so that each step of production was applied just-in-time for each item in the factory.
In 2005, David Anderson, Jim Benson, and others began to publish books about how they applied the Kanban method to other fields including software development.
Key Elements of Kanban
There are 6 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 5). 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 goal for the team.
Feedback Loops - Taking moments to reflect on what is working and to consider 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 which shows all of 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.
Perhaps the most important factor in Kanban's effectiveness is that all work items and their statuses are shown on a board.
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 begin working 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.
Personal Kanban Boards
Another application of Kanban is to use it to manage your personal to-do list.
To-do lists are a set of tasks with different status (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. Just 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 with a board in this way is that you can see at a glance what is being worked on by whom.
Trello allows you to create lists which 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 a status and are updated by dragging an individual card from one list to another. 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.
Dragging and dropping cards from one list to another is possible in Trello and is how you update the status of a card.
Kanban is a project management methodology that improves output by working on fewer items at any given moment and decreasing the time spent between beginning and finishing those items.
Kanban has 6 key elements:
Limit work in progress
The Kanban board is important to visualize work status and understand what work to prioritize next.