Yogesh Chauhan's Blog

Kanban vs Scrum: The two frameworks of agile principles

in Miscellaneous on March 14, 2020

In simplest terms, Agile is a set of principles. Kanban and Scrum are just frameworks that help us adhere to those agile principles.

Yes, there are differences between scrum and kanban. Both of the practices are different and that’s why they have different names! But, the principles are almost the same. Both frameworks will help you build better products if you stick to one or both and they will reduce the problems in the overall product development process.

But, What is Agile?

Agile is the ability to create and respond to change. 

Agile is an 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. Instead of betting everything on a “big bang” launch, an agile team delivers work in small, but consumable, increments.

What is Agile Software Development?

Agile software development refers to software development methodologies centered round the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.

What is kanban?

Kanban is a popular framework used to implement agile software development. It requires real-time communication of capacity and full transparency of work. Work items are represented visually on a kanban board, allowing team members to see the state of every piece of work at any time.

It is a workflow management method designed to help you visualize your work, maximize efficiency. Kanban visualizes both the process (the workflow) and the actual work passing through that process. The goal of Kanban is to identify potential bottlenecks in your process and fix them so work can flow through it cost-effectively at an optimal speed or throughput.

From Japanese, kanban is literally translated as billboard or signboard. Taiichi Ohno, an industrial engineer at Toyota, developed kanban to improve manufacturing efficiency. Kanban is one method to achieve JIT(Just In Time). The system takes its name from the cards that track production within a factory. For many in the automotive sector, kanban is known as the “Toyota nameplate system”. Originating from manufacturing, it later became a territory claimed by agile software development teams. Recently, it started getting recognized by business units across various areas.

Kanban Board
Kanban Board

Four Core Kanban Principles

1. Visualize work

By creating a visual model of your work and workflow, you can observe the flow of work moving through the Kanban system.

Making the work visible, along with blockers, bottlenecks, and queues, instantly leads to increased communication and collaboration. This helps teams see how fast their work is moving through the system and where they can focus their efforts to boost flow.

2. Limit work-in-process

By limiting how much unfinished work is in process, you can reduce the time it takes an item to travel through the Kanban system.

You can also avoid problems caused by task switching and reduce the need to constantly reprioritize items. WIP(work-in-process) limits unlock the full potential of Kanban, enabling teams to deliver quality work faster than ever in a healthier, more sustainable environment.

3. Focus on flow

Using work-in-process limits and team-driven policies, you can optimize your Kanban system to improve the flow of work, collect metrics to analyze flow, and even get leading indicators of future problems. A consistent flow of work is essential for faster and more reliable delivery, bringing greater value to your customers, team, and organization.

4. Continuous improvement

Once your Kanban system is in place, it becomes the cornerstone for a culture of continuous improvement. Teams measure their effectiveness by tracking flow, quality, throughput, lead times, and more. Experiments and analysis can change the system to improve the team’s effectiveness. Continuous improvement is a Lean improvement technique that helps streamline workflows, saving time and money across the enterprise.

Now, What is Scrum?

Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Scrum is a framework that helps teams work together. Much like a rugby team training for the big game, Scrum encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve.

Scrum is empirical in that it provides a means for teams to establish a hypothesis of how they think something works, try it out, reflect on the experience, and make the appropriate adjustments.

It is designed for teams of ten or fewer members, who break their work into goals that can be completed within timeboxed iterations, called sprints, no longer than one month and most commonly two weeks, then track progress and re-plan in 15-minute time-boxed daily meetings, called daily scrums. It is one of the approaches that influenced the Agile Manifesto, which articulates a set of values and principles to guide decisions on how to develop higher-quality software faster.

Scrum is best suited in the case where a cross functional team is working in a product development setting where there is a non trivial amount of work that lends itself to being split into more than one 2 – 4 week iteration.

Scrum Overview
Scrum Overview

Differences between Scrum and Kanban

Roles

In Kanban, there are no pre-defined roles for a team. Although there may still be a Project Manager, the team is encouraged to collaborate and chip in when any one person becomes overwhelmed.

In Scrum, the Scrum master dictates timelines, Product owner defines goals and objectives and team members execute the work.

Release methodology

In Kanban, products are delivered continuously on an as-needed basis. In Scrum, deliverables must be ready at the end of each sprint for review.

Delegation

Both of them use “pull system” but in a different way. Kanban allows team members to only “pull” new tasks once the previous task is complete whereas in Scrum, an entire batch is pulled for each iteration.

What about changes?

Changes during the sprint are strongly discouraged. Kanban allows continuous changes for iterations and continuous improvement prior to the completion of a project.

Measurement of Productivity

Kanban measures production using “cycle time,” or the amount of time it takes to complete one full piece of a project from beginning to end. 

Scrum, on the other hand, measures production using velocity through sprints. Each sprint is laid out back-to-back and/or concurrently so that each additional sprint relies on the success of the one before it.

Key metrics

Scrum: Velocity

Kanban: Lead time, cycle time, WIP(work in progress)

Sources


Most Read

#1 Solution to the error “Visual Studio Code can’t be opened because Apple cannot check it for malicious software” #2 How to add Read More Read Less Button using JavaScript? #3 How to check if radio button is checked or not using JavaScript? #4 Solution to “TypeError: ‘x’ is not iterable” in Angular 9 #5 PHP Login System using PDO Part 1: Create User Registration Page #6 How to uninstall Cocoapods from the Mac OS?

Recently Posted

#Apr 8 JSON.stringify() in JavaScript #Apr 7 Middleware in NextJS #Jan 17 4 advanced ways to search Colleague #Jan 16 Colleague UI Basics: The Search Area #Jan 16 Colleague UI Basics: The Context Area #Jan 16 Colleague UI Basics: Accessing the user interface
You might also like these
How to display and animate image on scroll using JavaScript?JavaScriptWhat Does Host-Based Intrusion Detection System (HIDS) Mean and What Are Some Advantages Over NIDS?MiscellaneousHow to switch dark and light themes using pure CSS?CSSWhat is IPS(Intrusion Prevention System), How Does It Work and What are the Detection Types?MiscellaneousRevisiting variable scope in JavaScriptJavaScriptLearn to create profile card using HTML and CSSCSS