Monday, April 9, 2012

Kanban Question

A colleague asks: we are an out-sourcing firm and have a client who does not have a Product Backlog. In fact, they often can't prepare enough items (stories) for even a full Sprint Backlog. (2 week Sprints).  He is not used to Scrum or any other Agile approach. I am thinking of using Kanban with him.  What do you think?

For some readers I guess we should define Kanban.

Kanban

Kanban is the Japanese word for signboard or card.  The Lean guys in Japan stole the idea from Piggly-Wiggly in the US (a grocery store).

The idea is to use the cards to establish a pull system, to generate flow and to minimize WIP (work in process). It is very helpful if each card represents a small amount of work, and roughly an equal amount of work. We establish 3-7 'slots' for each of 3-7 process steps. This establishes the capacity of the 'system', meaning in our case, a team.

Another key idea is to use visual management (seeing the cards on a board) to manage the flow.  If flow stops, the issue is supposed to be addressed immediately.

This is a hugely over-simplified view of Kanban, especially as practiced by Toyota.  Indeed, Toyota does many other things besides using the Kanban cards to enable pull and flow, and to minimize WIP. When we hear something that sounds like a team is using 'only Kanban', we are worried, because that seems to us likely to not be enough.  Of course, almost always, they are doing other things as well, but often not calling them anything. 

Summary of recommendations

Scrum comes with a basic Kanban approach 'out of the box' with the scrum board (with backlog, in process, and done columns).  Once the team gets the basics of scrum down, we strongly recommend enhancing this board to make it a strong Kanban board.

In almost all real situations that we encounter, we want to maintain the basic strengths of scrum even while using Kanban on the board.  These include release planning, sprint planning meeting, daily scrum, sprint review (demo), and retrospective. Very rarely we see weird situations where this just won't work, but again that is very rare.

If the product owner is not 'good enough' or the connection to the business side is weak, we recommend addressing those impediments directly.  We do not recommend hiding those impediments by doing only Kanban.

Discussion

Some assumptions...
1. The team is a regular size of about 7.
2. The client has a product of a reasonable size.
3. The product is important, although not always as important to the CEO (of the client, in this case) as we team members might like.
4. An MMFS (Minimum Marketable Feature Set) for this product typically takes at least four weeks of work (or more) by the team. (This means to me, more than 1 sprint.)

I find that situations that don't fit within these assumptions are rare. But they do of course exist.  My recommendations above and my comments below are based on these assumptions.

First issue: a weak product owner or a poor connection with the business is very common!

I am sorry, but this true.  And scrum makes this issue visible, eg, in the demos.

These problems happen because Technology got divorced from 'the business'.  It happened because mutual disrespect has built up over the years.  It happens because no one has ever been asked to be a product owner before. And your firm typically does not have a seriously experienced and successful product owner to train or mentor the freshly minted product owners.

Solve this problem!  And it starts by making the pain visible.  (Further discussion of this issue in a later blog post.)

Second issue: which is better to implement first, Scrum or Kanban?

This is maybe the toughest question, with not always an easy answer.  My main answer is clear: Scrum.  Because it sets so many basic disciplines in play.  

This often requires a persuasive advocate for Scrum.  Scrum can appear hard (change always feels hard), Scrum is typically blamed for revealing real problems, etc.   And often the local advocate does not fully appreciate all the reasons that Scrum works.

Now, let's assume you have a good advocate and you have made a persuasive case for Scrum.  Maybe even gotten them to try it for 4 Sprints.  But they aren't buying it.  This can happen in real life.  Not saying that it should, but people are not always reasonable.

In that case, it is reasonable to say, ok, let's try Kanban.  And then later, as you identify issues that make some part of Scrum useful, you implement that part.

This is not to say that professional Kanban is easy to implement.  But maybe in some cases easier.

Third issue:  Retrospective.

Yogi Berra said: in theory there is no difference between theory and practice, but in practice there is.

In theory, we humans in a team should not need a Retrospective meeting, but in practice we do.  And we need one about every Sprint length.  (I like 2 week sprints, but I am not too bothered whatever length you want to say.)

So, if you implement only Kanban, then also implement a Retrospective every 2 weeks.

And the key here is to identify the top impediment and take action.  Action in the form of identifying a specific plan to fix it. Or in identifying a business case to fix it, that a manager will approve (once you make the presentation of the case).
***
This is already a long blog post.  Let me leave it here (although there is much more to say).  Tell me your questions, and I will likely write and explain more.

No comments: