Just like the Scrum framework, Kanban is one of the possible ways of the Agile methodology implementation. Kanban was created on the basis of Toyota Production System, and one of its primary goals is to follow the principles of Lean manufacturing. These principles can be described as a tendency to costs elimination through minimization of the overall amount of work that is currently running (Work In Progress or WIP). The lean manufacturing principles are widely used at the manufacturing enterprises. Such an approach prevents the total amount of unused materials from growing. Moreover, this methodology allows finding the bottlenecks of the manufacturing life cycle.
But, besides the industrial manufacturing, Kanban principles can be used to manage the process of almost any type. For example, it can improve the waterfall software development life cycle model. To understand how you can use Kanban for that purpose, let’s take a look at its core principles.
The Three Principles of Kanban Development
There are three core principles that allow you to use Kanban in your project:
- Visualize the workflow. The visual representation of development process helps determine the current status of your tasks. It’s pretty useful when you work on a big project with dozens of them.
- Limit WIP. If you restrict the number of active tasks for every phase of your project, you’ll get an ability to control the available resources and avoid the possible idleness.
- Continuous measure and improvement of the life cycle. The possibility to make changes during the working process is a distinctive feature of the Agile methodology.
How to Use Kanban?
Since Kanban can be used in many different areas, it can be implemented in various ways. But the overall process stays the same from project to project.
1. Divide the Development Process
According to the particular task, different development stages can be determined. The primary requirement is to divide the project into three big parts: “To Do”, “In Progress” and “Done”. Here’s an example of how the software development process can be divided:
- Product backlog
After you divide the whole development process into stages, you should define the number of tasks to work on at every stage. And this is what we have discussed earlier: Limiting WIP. There’s no clear solution that allows you to determine the proper number of tasks for the particular project. The optimal number depends on the situation. You can choose this number randomly at the beginning.
For example, you think that every developer should have a single task to work on. As an alternative, two developers can work on one task at the same time which will help them to interact and generate new ideas during work. The overall number of tasks for every phase can be changed after you get the first results of such a strategy. The main thing that you should remember at this stage is not to set a high number of tasks.
When you are done with dividing the development process, you can create a Kanban board.
2. Creating the Kanban Board
What is Kanban methodology? “Kanban” is a word of Japanese origin. It consists of two words: “Kan” – visible; and “Ban” – board.
The Kanban board is an intuitive way of your project representation that allows tracking the current status. During this phase, every task gets its priority level. You can create your Kanban board using Trello.
Below you can see how such board looks like. It was used at XB Software outsourcing software development company during the work over the project “Workforce and Facility Management Suite”.
Kanban Board Example
As you can see, every task has its card. In this case, the board was divided into four parts:
- ToDo section contains tasks that were received from the customer and required to be analyzed. Each task is marked with color according to its priority.
- When tasks from the first section have been analyzed and estimated by the Team, they are moved to the Estimated section.
- When the developer takes a task to be developed, he moves it from Estimated to In Progress section and marks it with his personal tag to show who handles each task.
- When a task is done, it’s moved to the Done section.
And this is where the limiting WIP principle is used. For every step that development process consists of, you should set the highest number of tasks that can be developed at the same time. Therefore, you can define the allowable number of cards for every area of the Kanban board. It’ll give you a possibility to finish the proper task faster and increase the quality of work. As an addition, such approach will reduce the number of errors, which means that you won’t have to waste your time to remove them.
Kanban is a Pull system. After the member of your team has finished the task, he can pull it to the next stage, signaling the developers responsible for the previous stage to start another task. This feature helps reduce WIP. On the other hand, there are such called Push systems. Every team on every stage of the Push system works as hard as it can and pushes the completed task to another level regardless the overall number of existing tasks.
3. Finding the Bottlenecks
Visualized workflow allows understanding where the bottleneck of your project is. If a team responsible for certain stage of project development (for example, design, coding or testing) faces any problems it can’t resolve, it will fill the corresponding area of your Kanban board pretty fast. As a result, you won’t be able to pull new tasks from the previous stage. You can look at your board and define where the problem is. And, in case of Kanban, you won’t need to use any sophisticated algorithms to identify the bottleneck. Early detection of such issues will help avoid idleness in work.
4. Optimizing the Working Process
The proper solution depends on the type of project. You can either reduce the number of tasks for every stage or, for example, developers may be involved in the testing process.
There are two influential parameters that allow tracking your working process: the lead time and cycle time. Lead time tells you how much time it will take to finish the task after it is received from the customer. Cycle time is the amount of time required to complete a certain task after the developer started to work over it. You can use specialized software to systematize this information. As a result, you will clearly realize how much time you may need to complete the task. And, what’s more important, on this basis you can make a decision about further improvements.
Kanban was designed to help you use the available resources in the best possible way. It allows you to find the bottlenecks before they become a big unsolvable problem. One of the most important part of Kanban is workflow visualization. It’s easy to use Kanban since it consists of three easy principles.
This methodology may be useful if you want to know what current status your project or a single task has during the development process. It allows you to answer the questions who’s working on what task and when it will be completed. And, what’s more important, there’s no need to change your existing methods and processes. With Kanban, you make incremental improvements, so there’s no need to change something immediately.
Latest posts by Dmitry Gurendo (see all)
- Software Development Life Cycle (SDLC). Spiral Model - October 26, 2015
- Combining Waterfall, Kanban and Scrum. Real Use Case Experience - September 29, 2015
- Software Development Life Cycle (SDLC). All About Kanban Model - July 30, 2015