Scrum vs. Kanban

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

Scrum Kanban
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.

 
Focus on the sprint, the sprint tasks and therefore on the customer benefits.

 
Openness for changes, reviews, feedback and collaboration.

 
Respect the team, other opinions and the project environment.

 
Courage to ask question, to help others, to ask for help, to work transparent and to accept changes.

Visualize the work and find bottlenecks and confounders.

 
Reduce the Work In Progress (WIP).

 
Measure and control the flow of the WIP.

 

 

Main procedure Split your organization into small, cross-functional, self-organizing teams.

 
Split your work into a list of small features (concrete deliverables). Sort the list by priority and estimate the relative effort of each item.

 
Optimize and update the release plan, the feature list and the priorities in collaboration with the customer.

 
Split the project into short iterations, with a potentially shippable result at the end of each iteration.

 
Optimize the process by having a retrospective after each iteration.

Split the work into pieces, write each item on a card and put it on the wall.

 
Use named columns to illustrate where each item is in the workflow.

 
Limit the work in progress. Assign an explicit limit (queue size) to each workflow state.

 
Measure the average time to complete one item, and optimize the process to make this time as small and predictable as possible.

 
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.

 
Meetings

Scrum Kanban
Iteration planning Planning meeting 1

Planning meeting 2

Daily synchronization Daily scrum Daily stand-up
Iteration finalization Review

Retrospective

 
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.

Scrum Kanban
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.
Time estimations Mandatory 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.

 
Summary
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.

Advertisements
Dieser Beitrag wurde unter Projektleitung, Scrum veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s