Scrum and Kanban are both very popular ways to execute software development projects in an agile manner. Within this article I want to compare these two frameworks and show their similarities and differences.
Goals and main ideas
|Goals||Create a frame within the agile project, which allows the development team to work focused, undisturbed and self responsibly.||Reduce delivery times|
|Main ideas||Commitment to the sprint goals, the team, cooperation, quality, transparence and learning.
||Visualize the work and find bottlenecks and confounders.
|Main procedure||Split your organization into small, cross-functional, self-organizing teams.
||Split the work into pieces, write each item on a card and put it on the wall.
Scrum and Kanban have different main goals and ideas. Of course, the main goals of one framework may also be secondary goals in the other one. So there are some equalities in the two concepts, but the concepts differ in their main goals.
The main difference is, in my opinion, how you execute the development work. In Scrum, you select the work you’ll be doing for the next sprint beforehand. You then lock the sprint, do all the work, and after a couple of weeks your queue is empty. In Kanban you work on single tasks and you limit the size of the task queues to reduce the work in progress. This means that you can change the items in the queues at any time, and that there’s no iteration. The work just keeps flowing.
|Iteration planning||Planning meeting 1
Planning meeting 2
|Daily synchronization||Daily scrum||Daily stand-up|
As Kanban does not use iterations, there are not startup and finalization meetings. A Kanban team will plan his work within the daily stand-ups. There are not explicit iterations but implicit each day is a short iteration. So the daily stand-up in Kanban can be seen as daily planning meeting. Therefore it needs a little bit more time compared with the daily scrum meeting which should be done in 15 minutes.
To improve the development process, scrum has a defined retrospective meeting at the end of each sprint. In Kanban teams you should also improve the process. Therefore Kanban itself is often combined with Kaizen. Kaizen is a method to continually improve all functions in a company and involve all employees from the CEO to the assembly line workers. If you use Kanban in you project team only and the company does not have a defined improvement process like Kaizen, I would recommend doing retrospective meetings like you know them from the scrum process. So for example you can do retrospective meetings all two weeks.
Differences between Scrum and Kanban
The following list shows some more differences between the two concepts.
|Roles||There are three defined roles: Product Owner, Scrum Master and Team.||There are no roles defined.|
|Iterations||Sprints with a defined length.||No iterations. The work just keeps flowing.|
|Commitments||The team commits to the work it wants to do in the next sprint.||Commitments are optional.|
|WIP||The work in progress is limited indirectly, because the work for each sprint will be defined.||Explicit limitations and queue sizes|
|New requirements||New requirements are allowed at any time. They will be collected in a backlog document and may be implemented in a future sprint. During the current sprint it is not possible to introduce new requirements into the implementation process.||New requirements can be introduced at any time, as long as there is free capacity. If the work in progress reaches the defined limit, new tasks can be written into a backlog queue for future implementation.|
|Prioritization of tasks||Mandatory||Optional|
|Task Board||A Scrum task board is used by one team. It is used during the sprint. For each sprint the board will be deleted and set up again.||A Kanban board may be shared by different teams. As the work is still in a permanently flow, the board is continuously maintained.|
Scrum and Kanban are both concepts which will help you to do an efficient work in an agile environment. So they have few similar ideas, concepts and tools. But there are also some big differences. Therefore it is important to select the right process model which fulfills your needs. This can be Scrum, Kanban or some other concept. Therefore, think first and select the model which fulfills you needs and fits with your Goals.