tl;dr: (from Karl Scotland)
- Scrum focuses on being agile which may (and should) lead to improving.
- Kanban focuses on improving, which may lead to being agile.
Kanban and Scrum are two different flavors of Agile development workflow. This post covers similarities and differences between the two approaches as applied to software development projects – as opposed to “change management” – an important distinction. (Hopefully you don’t have to choose between Scrum and Kanban and instead can find application for both!)
Scrum is a form of agile that optimizes the estimation and execution of work. Scrum teams work in fixed intervals, known as sprints, which means they iterate on the product frequently. This allows the team to get feedback about each release, and to ensure maximum value back to the customer in the next sprint.
Kanban is a flavor that emphasizes the flow and continuous delivery of work. Limiting the number of items in flight creates an elegant workflow that lets kanban teams manage quality closely and deliver work to the customer continuously. A pull model makes the flow of work visible across the team, and exposes bottlenecks so the team can address them quickly.
- Both Kanban and Scrum focus on ‘getting to done’ for tasks in progress, reducing context switching
- Both at their core are summarized by the premise: Stop Starting, Start Finishing.
- Both limit WIP.
- Both use visibility and transparency to drive continuous process improvement.
- Both focus on delivering value (releasable software) early and often to minimizing risk
- Both are based on self-organizing and highly-collaborative teams who make their own decisions, strive for predictability, and a sustainable pace of development
- Both require breaking the work into pieces.
- Both embrace change as an opportunity, not a hindrance
- Both continuously optimize the release plan based on empirical data (velocity / lead time).
Ilan Goldstein has a great image from his book Scrum Shortcuts without Cutting Corners that nicely describes the power of Agile when discipline is maintained and teammates work together as one. I feel it applies to both Kanban and Scrum.
For sponsors and the business, the interlocking shields provide:
- Risk mitigation
- Visibility, transparency
- Continuous organizational improvement
- The opportunity for change as the result of frequent feedback loops
- Faster and predictable delivery of value
For the agile team they provide:
- Reduced context switching
- A sustainable pace of development
- The ability to make their own commitments
- No more “just me”
- And no more “us and them”
The ancient Spartans would fully understand the core values of this approach
Because the team focuses on only a few things at a time, they work well together and produce excellent work. They deliver valuable items sooner.
Because they work as a team, they feel supported and have more resources at their disposal. This gives them the courage to undertake greater challenges and overcome adversity.
Because the team has great control over their own destiny, they are more committed to success.
As they work together, sharing successes and failures, they come to respect each other and to help each other become worthy of respect.
Some Tools for the Journey
When you create an Agile board in JIRA (Agile > Manage Boards > Create Board), you get to choose between one of two type – Scrum or Kanban – depending on how we want to run the project.
What kind of board am I looking at?
If you have an existing JIRA Agile board (previously known way back as Greenhopper), you can tell by looking at the top right if you’ve got a Kanban or Scrum version.
Scrum boards will have the “backlog” button enabled:
Note: It is not possible to switch an existing JIRA agile board from one type to another. Fortunately it is easy to create a new agile board of either type and use an existing JIRA filter.
Which is “Better” – Scrum or Kanban?
Really? It depends…
- Scrum is generally used by development teams who follow a roadmap of planned features for upcoming versions of their product. It sets up a regular cadence.
- Kanban is often used by teams who deliver maintenance releases. Kanban is also well suited to WebOps, SysAdmin and IT Support teams where frequent reprioritization is need.
- Learn more about Kanban Methodology as change management