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.
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.
Differences between Scrum and Kanban
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.
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.
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.
Kanban: Lead time, cycle time, WIP(work in progress)