The main idea behind every single agile development technique is to improve all the processes involved with software development. You need a way to identify your strengths and weaknesses, your bottlenecks and actors. Every actor has, in one way or another, impact on the software development process. You need to know what is happening to take actions to improve interactions between actors.
When you speak about agile development you have a lot of tools to work with in order to improve your development process. Kanban is just one of these tools that is available for you to use. Kanban lets you simplify your whole development process in an easy visual way.
What is Kanban?
The origin of the word “kanban” comes from Japanese, and it means “signboard” or “billboard”. Kanban is a method to manage the creation of products with an emphasis on continual delivery without overcharging delivery team. It is a visual aid tool that let you track the status of your entire development process at every time. Kanban implements only a few guidelines that you need to follow in order to keep the process running smoothly. It uses a work-in-progress limited pull system as core mechanism to expose process problems. The goal is to stimulate collaboration to continuously improve the system.
Let’s start by the beginning, describing Kanban principles.
Kanban is based on three simple principles:
- Workflow control: you could always visualize what you have to do today. There are no misunderstandings. What you have to do is there, prioritized, and in order of importance. You can see how what you are doing is connected with the other team members’ work. This is important because knowing that your work is a brick to build something bigger, gives people happiness and improves the commitment with the project.
- Keep control of the amount of work in progress (WIP): the WIP is the work you are handling simultaneously. Team leaders should decide which is the amount of work their team can take, develop, test, document and deliver at the same time. This number is not the same for every team. As every process of continuous improvement, each team should adjust that number in each iteration.
- Enhance flow: when the team delivers something, then the top next task is taken to the WIP column. The workflow itself tells you which the next task to do is.
Kanban vs Scrum
Scrum is an agile software development model as well, based on small teams working together. There is a myth out there that Kanban and Scrum are mutually exclusive. That is not true at all. You can and maybe should use them together as a complement of each other. Kanban encourages you to follow only a few restrictions, while Scrum is a little less permissive, although it is still an agile development tool.
There you can see the main differences between both approaches:
Kanban No prescribed roles Continuous delivery The work is pulled in single pieces Changes can be done at every time It is recommended when the priorities are changed every time Scrum Pre-defined roles Time boxes delivery called sprints The work is pulled as a whole batch in every sprint Changed need to be done at the starting moment of a sprint Useful when priorities are the same in a sprint basis, and you can handle batches of work together
No prescribed roles
The work is pulled in single pieces
Changes can be done at every time
It is recommended when the priorities are changed every time
Time boxes delivery called sprints
The work is pulled as a whole batch in every sprint
Changed need to be done at the starting moment of a sprint
Useful when priorities are the same in a sprint basis, and you can handle batches of work together
Joining a team is different from performing as a team member. Teams need teamwork to achieve their goals. Nowadays, to improve teamwork is part of your duties as a team leader or even as a team member. There are a lot of tools ready to be used by you out there, with tons of information about each of them.
Do we recommend you to use this amazing tool called Kanban? It all depends on your needs, but we encourage you to at least give it a try!