Thursday 2 July 2009

Kanban collaboration nirvana?

I've been educating myself more and more lately on this Kanban buzz. For the neophytes, this is more or less the Toyota model applied to software development.

One thing that struck me is how it enforces collaboration. The cool thing is that I can relate to some of the inherent benefits when thinking of a project that I worked on a few years ago.

One thing Kanban ask you is to be lean. To be lean implies to have control over your queues. At Toyota it meant that the door maker guy would only start making new doors when the door installer guy would have only X left in his pile. How does that translate to software you ask?

Well it is simple. The number of stories accepted on the board are limited, the WIP (work in progress) is kept to a low number, similarly all the queues of your SDLC are kept to a small number too. There goes for the queues optimization theory, you can read more here.

However, these limitations on the queues size have an interesting side effect, and it is that it will promote collaboration over everything else. In a Kanban system a team member for example, is encouraged and might have to offer help to the QA team in order for them to free some room in their own queue, which will allow the dev to promote the new completed story to the QA stage. Similarly, a developer could also assist in the UCD (user centered design) activities if the bottleneck was found to be there.

Isn't this beautiful? I think so. This is something I recall doing at a small scale when I was project leader, I would find myself occasionally helping my QA team to reduce their queues.

At the time I did not know that much about Toyota nor Kanban, but it feels good today to see that I had such behaviors without really knowing much about some of their benefits.

Another side effect of this is the growing requirement for highly agile team members, team made of people that can do just about anything for the benefit of project... and the team!

No comments: