Monday, February 1, 2016

What's the difference Scrum or Kanban?

Scrum or Kanban, that is the question that keeps coming up! But is it really an either/or question? Some people would have you choose. I believe they are complementary approaches and a pragmatic approach is to use each when appropriate. Let's look at what is Kanban, what is Scrum, and how they are similar and different.

Here's the short answer:

Both are reflective and adaptive. Kanban is focused on limiting work in progress whereas Scrum limits the time you can spend on a problem before you have to produce a result. If your product were a car, Scrum would be saying check your oil and tire pressure every month, and Kanban would be the warning lights on the dashboard that turn red when something is amiss. Both the maintenance intervals and the warning lights have value, and it would be silly to ignore either one.

Here's the long answer:

If I remember David Anderson's Kanban course correctly: Every sentence has a subject, a verb, and an elbow directed towards Scrum! OK, I exaggerate slightly ;-) Let's look at this more closely...

What is Kanban?

The purpose of Kanban is to create a culture of continuous improvement aka a "Kai-Zen Culture".  Kanban does not define a destination, but rather strives to create a culture that is willing to improve.

This essence of Kanban can be summed up in three steps:
  • Don't change anything. Change causes fear. Respect people and their roles. So leave existing roles and processes unchanged.
  • Agree to get better.
  • As a first step to improvement, visualize your work flow.
Visualization will enable you to see where things are getting stuck. When people see things are getting stuck, intelligent people people will generally do something about it. Limiting WIP creates a signaling mechanism, which is usually missing in Waterfall, to limit requests upstream and smooth out the flow.

I believe Alistair Cockburn phrased it this way: Kanban is reflective and adaptive, with reflection and adaption primarily triggered by examining the state of work.

What is Scrum?

Scrum is a simple, team-based framework for solving complex problems. Scrum is based on successful patterns for developing products. Scrum implements a small set of patterns:
  • Inspect and Adapt at regular intervals
  • An interdisciplinary team solves the problem
  • The team produces something the customer might value at regular intervals
  • One voice speaks for the customers and stakeholders
  • A coach helps the team and the organization get better
In the words of Alistair Cockburn: Scrum is reflective and adaptive, with reflection and adaption primarily triggered by time-boxing.

How are Scrum and Kanban similar?

Both are reflective and adaptive. Kanban is focused on WIP whereas Scrum uses Time-boxing. If your product were a car, Scrum would be saying check your oil and tires every month, and Kanban would be the warning lights on the dashboard that turn red when something is amiss.

When I listened to David Anderson talking about his case studies, I thought a mature Kanban team is surprisingly similar to a mature Scrum team. What the Scrum Community call sprint planing and review takes on a strategic character, features get done during the sprint., not just at the end of the Sprint. Stories need to be trimmed to size. Scrum has sprints, Kanban has "cadence." You can even limit WIP in a sprint.

How has Kanban influenced my teaching of Scrum?

I have recognized a couple of things:
  1. The easiest route to change starts with an agreement of the parties involved.
  2. If people look at how they work today, its well represented by Kanban
  3. If people think back to their best projects, they find a lot of commonality with Scrum. This recognition creates often creates a willingness to try Scrum.
  4. As it is primarily an attitude and a visualization tool, Kanban is applicable in some contexts where Scrum is not.
  5. As it is primarily an attitude and a visualization tool, Kanban does not directly address the people issues, especially at the team level.
If we consider our goal is to reach some mountain top called "High-Performance," then both Scrum and Kanban represent (I wish I could find and quote the coach who first made this analogy in a video -- can someone help me?). I believe Scrum represents are higher base camp than Kanban, but Scrum is not the destination, just a starting point.

I have found it most effective to consider Scrum to be a "reference implementation." No one will ever do it exactly like it is in the book, but they should do their best to get as close they can to the reference at the beginning. As they master it, their local improvements may very well take the team away from pure Scrum (think Spotify), but if they are inspecting and adapting frequently, it's OK.

By considering Scrum a point of departure, rather than a Nirvana to be achieved, we take away much of the pressure for compliance. This concept of Scrum as a standard to optimize from rather than a process to adhere to brings it philosophically in alignment with Kanban.

So I don't see an either-or. I use Kanban. I use Scrum. Let's get some work done!

0 comments: