What I Learned This Week - Agile Methodology: the Difference Between Kanban and Scrum

September 14, 2020
What I Learned This Week - Agile Methodology: the Difference Between Kanban and Scrum

During my internship this week, I was exposed to the difference between the Kanban and the Scrum methodologies. I’ve worked with the Scrum methodology in past internships so I am very familiar with it. I had heard the term “Kanban” in the past, but I never made the efforts of understanding it until this week. Comparing both approaches helped me understand the Kanban method better, so I thought I’d explain it the same way I learnt it.

Both Kanban and Scrum are part of a set of ideals and principles with the goal of delivering software faster called Agile. We usually use them to help us organise the development and delivery of a software project in an iterative manner.

What is Scrum

The Scrum approach is fast, where working software is released at predetermined intervals called sprints. A sprint lasts between 2 and 4 weeks and each sprint is usually of the same length. The reason for having short sprints is to split complex work into smaller tasks in order to be able to deliver working code quickly. Ideally, there shouldn’t be any scope changes made during a sprint as the team should be able to estimate the amount of work it is capable of accomplishing during that period of time. During a sprint, members of a Scrum team will participate in various meetings: sprint planning, sprint review, retrospectives and daily stand-ups.

Sprint Planning

As the name implies, a sprint is organized in a sprint planning meeting. The various members of the Scrum team discuss the goal of the sprint and how that goal will be achieved. They usually select the tasks that will be pulled into the sprint. This meeting is what kicks off a new sprint.

Sprint Review

At the end of the sprint, members of a Scrum team meet to demonstrate what has been achieved in the sprint. It is also the time where what has or has not been accomplished in the sprint. In my experience, these are usually pretty fun: you get to demo what you’ve been working on in the previous sprint and watch what your colleagues have been working on as well.

Retrospectives

At the end of each sprint, the team meets to discuss how the sprint went. The sprint review is focused on the what whereas the retros are focused on the how. Every team member is given a chance to express what they liked, disliked or want to improve from the last sprint. From the team’s reflection, actions items are often generated in order to improve the Scrum process in future sprints.

What’s the difference between Scrum and Kanban

The Kanban approach is focused on getting tasks completed. Unlike the Scrum approach, where the workflow is separated in sprint of a set duration, the Kanban approach is based on a continuous workflow in order to maximize the team’s efficiency. One of its goals is to limit the work in progress by limiting the number of tasks that can be worked on at the same time. A Kanban team does releases whenever they are ready to do so, without any set delivery/release dates. The Kanban approach favours continuous improvement, which contrast with the Scrum approach wich only allows for refinement every sprint. An important element of the Kanban methodology is the Kanban board which is used to organize the team’s tasks. A Kanban board usually has the three following categories: “ToDo”, “In progress” and “Done”. However, those categories are customizable: depending on your team needs, you can tailor the columns for your project. Here’s drawing of a what a Kanban board could look like:

Kanban

How do we choose which one to use in a project?

Disclaimer: The method chosen for each project usually depends on the development of the project itself; take the following as a rule of thumb rather than a Bible.

If your project will have milestones or big releases and the work is organized around the development of features (feature-driven development), the Scrum approach is most likely the best suited for your project. Let’s say you wanted to create Instagram. Your goal would first be to develop a working version of the app with the most important features such as profiles, uploading photos, comments/likes and a feed. Once you’ve implemented those initial features, you can release a first version of your app. Then, you can continue implementing more features such as stories, implementing videos, direct messaging, etc, while a version of your app is already out and being used. The Scrum approach would be well suited to be used to develop Instagram as there are big releases and the development is feature-driven.

On the other hand, if the development of your project presents itself in small tasks such as defects, the Kanban method would be best suited in this case. Let’s take a basic calendar app where you can add events such as Google calendar as an example. Once the core development of the application is done and there aren’t any big new features to implement anymore, such as being able to add an event, the only tasks to do are fixing bugs and implementing small new features such as adding an additional option is the settings menu. In this case, the Kanban approach would be best suited.

Hopefully you learned something about one of the two methods which you’ll be able to apply in your professional life.