Kanban eliminates the sprints or iterations of Scrum and Scrumban processes. Move to Kanban if:
Kanban is the simplest type of task management, but it requires the most sophisticated code management.
"Kanban" means "cardwall" in Japanese. Team members "pull" tasks to work on and put "cards" representing the tasks on a physical or online "cardwall," where everyone can see their status and progress. Team members work until the tasks are done, and only then pull new ones. This is a continuous flow process without any stopping points for big releases.
When you design a Kanban process, you set up a cardwall with status columns. Each column represents a step in your task lifecycle or workflow. For example, a cardwall might have columns for "New," "Design," "Program," "Test," "Deploy" and "Done."
There are always tasks on the cardwall, which are called "Work In Progress" or WIP. You want to make sure that, if a task is on the cardwall, someone is working on it. Therefore WIP is always limited, typically to one or two tasks per team member.
Limiting WIP is THE KEY TOOL that Kanban and Lean use to bring order out of chaos.
You will journey with Kaizen - continuous improvement. Do retrospectives and other analysis to find ways to improve. There is no specific time after a release to hold a retrospective and discuss process improvements. Or, you can cover all of your team´s improvement ideas in one place with a "Happiness Survey." Every one, two or four weeks ask your team "what feels best," "what feels worst," and "what would increase your happiness?" The responses will yield a lot of actionable advice.
Kanban is a general-purpose technique for organizing work. You can take almost any business process and show it on a Kanban board. The basic formula is to find "sources of demand" (the people that give you tasks). They put cards on the board in a backlog area. Then you map the process to show the stages that each task goes through.
This has a number of benefits. Your work is visible, so you spend less time explaining what you are working on. Each "source of demand" can see where their task fits in the queue. You can work with less stress by limiting "work in progress." You can deliver high priority tasks faster. You can improve the work by measuring cycle time and seeing bottlenecks.
You can make individual Kanban boards to show the workload of individuals. This is useful for "shared resources," such as designers working on multiple projects where it is important to know if they are overloaded or if they have available capacity.
You can use Kanban for almost any time scale. A system operations team could use it to track things that need to be done today. A marketer could use it for campaigns that take a month to execute. A strategic planning group could use it for a 3-month planning and budgeting process.
In contrast, Scrum is only appropriate for specialized situations. It's a team methodology that works if you have teams of 5 to 10 people. It is a batch process that only works if you can wait one to eight weeks for a deliverable, and if you finish deliverables in one to eight weeks. Scrum fits programming teams, but not operations, marketing, planning or other non-development functions. Only use Scrum if your team is 5-10 people and your delivery time is between one and eight weeks. Otherwise, use Kanban.
You can improve your results by using lean manufacturing ideas pioneered in the automobile industry. These methods have proven successful in eliminating waste and costs, improving manufacturing quality, and allowing companies to bring to market complex new products (such as new automobile models) in half the time or less compared to older techniques.
A lean process is organized by "the Principle of Pull." A worker or team pulls a task when there is capacity to finish it. This saves management time, since there is no complex process to assign tasks. However, it is often necessary to remind eager team members that they should only pull one or two tasks at a time.
The Principle of Pull also applies to building releases. Changes are pulled into releases when they are ready. This reduces stress and improves quality, because there is less pressure to rush features into production to meet a fixed release schedule. It also makes it easier to enforce coding standards and test coverage, since you can refuse to pull code that doesn´t meet those standards.
"Lean" manufacturing methods focus on reducing the inventory of physical parts that are waiting to be assembled into a finished product. "Lean" software methodologies focus on reducing work in progress, which are the tasks that have been started but not completed. Reducing WIP has a number of advantages:
Measure so that you can improve! Kanban enthusiasts typically focus on metrics related to speed. Speed is good.
Lead time - The time that it takes to move a task from first pull to finished. You can look at averages, and also at slow tasks that stick at the 90th percentile. You can see these on your cumulative flow diagram. You want lead time to be as short as possible. If it starts to lengthen, reduce your work in progress.
You might find that delivery is quite fast after you pull tasks, but some tasks spend a lot of time waiting in the backlog or being "groomed" with appropriate information. This is because there are really two kinds of lead time. Delivery lead time is the interval between starting work on a task and completing it. End-to-end lead time is the interval between accepting a task into the backlog or queue and completing it. If your users or customers perceive your responsiveness as related to end-to-end lead time, then you need to monitor that form of lead time and address the factors causing it to lengthen.
High priority lead time - It feels great and relieves a lot of stress if you can deliver high priority items quickly.
Cycle time - You can measure the amount of time that tasks spend in a specific status column. This is the cycle time for that column. Typically, most stages are fast, and a few of them are slow. That's gives you specific opportunities for improvement. If you find that a stage is slow, you will want to set a "WIP limit" for that stage - a maximum number of tasks that can pile up there. That motivates you to fix the problem.
Throughput or Velocity- How much can you do in a month? You can take simple averages, or you can do increasingly complex Monte Carlo simulations to give you an idea for how much you can do next month.
Quality - In software development, a typical indicator of a quality problem is a ticket that goes backwards in status. For example, tickets can go backwards from "Test" to "In Progress" if they fail a test. You want to measure the frequency of these events and see if you can reduce them.
In manufacturing, workers are more productive if, once they start on a piece they can finish it without waiting for additional parts to arrive or being pulled off to work on other pieces. In software terms, developers will be more productive if they can finish one story without waiting for a lot of other stories to be completed or being asked to switch between several tasks.
This simple principle turns out to have a variety of implications:
In a software Kanban process you want to test, finish and release each change. You can´t easily finish a task if you use a naïve testing process where you put your changes into a release candidate and wait for some sort of batch testing. Later in this guide we will cover techniques for Continuous Delivery that allow you to immediately test and release each change.