What are the main differences between Scrum, Agile and Kanban?
People constantly mention Agile, Scrum and Kanban as sides of the same coin, using them as interchangeable concepts when in fact they’re not.
To begin this comparison, before pointing you the differences between these methods you must know that both Scrum and Kanban are Agile methodologies. Confused already? Don’t worry, by the end of this article you’ll see things clearer! When you focus on understanding what sets them apart you’ll be able to choose the one that’s best for your context so, in order to do that, we’ll begin with a quick overview on what do these 3 terms mean.
What is Agile?
According to this definition by Agile in a Nutshell:
Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end. It works by breaking projects down into little bits of user functionality called user stories, prioritizing them, and then continuously delivering them in short two week cycles called iterations.
Short for Agile Software Development, Agile is a different way to manage the work of IT development teams and projects. The manifesto that created this concept came to light more than 15 years ago (in 2001 to be more precise) when a small group of IT professionals got together to compare and contrast the existing approaches for software development.
They came to the conclusion that “traditional” software development methodologies were flawed and, therefore, decided there had to be a better way to manage their work. Based on their discussions they came up with the Agile Manifesto: a set of twelve principles revolving around 4 important values:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Ok, got it! But what is Scrum?
According to this definition by Scrum.org:
Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs. Management and teams are able to get their hands around the requirements and technologies, never let go, and deliver working software, incrementally and empirically.
Scrum itself is a simple framework for effective team collaboration on complex software projects.
Okay, but what does that mean? It means that Scrum is a tool that can be used by teams that want to organize their work by breaking it down into smaller, manageable deliveries. Scrum is especially useful for cross-functional teams working on a fixed timeframe called sprint, that normally lasts from 2 to 4 weeks.
In order to manage and optimize this iterative and incremental framework, Scrum defines (at least) 3 main roles:
- Product Owner;
- Scrum Master;
- Team Members.
By definition, the Product Owner is the person in charge of the sprint’s initial planning, prioritizing the activities and communicating with the rest of the team. The Scrum Master is defined as a facilitator – he or she will be responsible for overseeing the process throughout the sprints while the Team Members will be responsible for the actual work demanded by the sprint, such as coding a new software.
Scrum teams commonly use a few tools to make the process easier such as the Scrum Board. According to this definition by scruminc., a Scrum Board:
is a tool that helps Teams make Sprint Backlog items visible. The board can take many physical and virtual forms but it performs the same function regardless of how it looks. The board is updated by the Team and shows all items that need to be completed for the current Sprint.
Ok, what about Kanban?
We’ve been over the definition and history of Kanban quite a few times before so I’ll be brief about this one (if you want to learn more about it, however, click here to see all kanban-related articles we’ve already produced).
Keeping the definition simple, Kanban is another tool that can be used in order to manage a team’s work focused on efficiency. Just like Scrum, the Kanban methodology also encourage teams to break down big deliveries into smaller, easier to manage (and achieve) tasks.
Kanban is centralized around a board that, similarly to the Scrum Board, allows teams to visualize their entire work and keep track of its progress all through the process.
While Scrum focuses on limiting the amount of time the team has to accomplish a pre-determined amount of work, Kanban limits the work-in-progress (the amount of tasks that can be at a specific stage of the process – X ongoing tasks, Y backlog, etc.)
Differently from Scrum, Kanban is a way less structured methodology. While defining it as a process framework is not entirely incorrect, a more accurate definition would be to refer to it as a model that introduces changes through incremental improvements. As a generic tool, Kanban can be applied to complement any process you’re already running (even Scrum!).
Scrum, Agile and Kanban: what’s the same and what changes?
Both Scrum and Kanban are Agile Software Development methodologies so it would be rather counterproductive to put all three within a single comparison. While analyzing the differences between Kanban and Scrum is feasible, comparing to Agile to them would be like comparing water and ice.
Scrum and Kanban are Agile frameworks, which means they are Agile in a specific context. Comparing Scrum and Kanban means comparing two Agile methodologies but comparing any of the two to Agile would be like comparing an example to its principles (and that’d be quite pointless). For this reason, we’ll go about this by comparing Scrum and Kanban.
For starters, when choosing between scrum and kanban you need to really assess what is it you’re looking for: did your company reach a point where it needs a complete shift towards a more effective process management methodology or are you just looking for a way to improve existing processes?
If your situation is the first, Scrum is the way to go. If you’re just looking to improve your processes without making any abrupt changes, Kanban is what you’re looking for.
Both Scrum and Kanban make it possible to break down big, complex projects into smaller tasks that can easily and efficiently completed. Both methodologies focus on continuous improvement as well as process optimization focusing on a highly visible workflow to keep the entire team in the loop.
We could split the existing differences between Kanban and Scrum into 3 big categories:
- The board: Even though the Scrum and Kanban boards can be seen as similar to each other, they’re significantly different from each other. For starters, let’s analyze their structure. Scrum boards have columns that are labeled in order to reflect periods in the workflow, from the sprint backlog all the way to the end of the sprint. The Scrum methodology clearly states that, in order for a sprint to be considered successful, all stories added to the board backlog at the beginning of each sprint should be placed at the final column at the end of the sprint so that the board can be cleaned before a new sprint starts. On a Kanban board columns are also labeled according to the workflow states but they have an essential difference: each phase has a pre-determined limit of tasks to be placed in each column at the same time. There are no required time limits as well as no reason the clean the board as work progresses. It consists in a continuous flow that’ll keep on flowing for as long as the process/project exists.
- Scheduling/Iteration: Scrum is highly focused on scheduling. As mentioned before while defining a sprint, scrum works by providing the team with a prioritized list of tasks that need to be completed in a specific amount of time. By comparing the tasks and the available execution capabilities, the team specifies how many points can be completed within the pre-defined sprint. The attitude towards out-of-scope activities is clear: everything that wasn’t prioritized and estimated must wait for the next sprint. Scrum works based on an iterative process that allows for precise estimations and effective project/process management. Working with Kanban doesn’t require specified timeframes or iterations – even though Kanban is considered an iterative method in itself, the improvements are expected to happen continually. Instead of limiting the general time for the activities to be completed, Kanban places limitations on workflow conditions by setting work-in-progress limits.
- Roles: As mentioned before, scrum teams demand at least 3 pre-established roles to work. Each of these roles comes with responsibilities and must work together to achieve balance and optimal results. Scrum teams must be cross-functional in order ti provide all necessary resources to complete the sprint. Kanban doesn’t set any specific rules. Even though it makes sense for a person to be defined as the supervisor, the Kanban methodology states that the roles must evolve alongside with the process/company’s needs. Kanban teams are not necessarily cross-functional since kanban’s workflow is intended to be used by everyone on all teams involved with the project/process.