I had a brief exchange of tweets with Ron Jeffries, Keith Braithwaite and James Shore after the Miami Lean and Kanban Conference ended regarded Kanban and its compatibility with XP and time-boxes. Unfortunately I wasn’t able to follow up immediately, due to an urgent (and eventful) trip to South Beach 🙂 Rather than try and follow up late on twitter, I’ve decided to post my thoughts here to try and clarify my ideas.
The discussion started following a tweet about Kanban being easier to introduce than Scrum. This seemed to be a common theme at the conference, with several experience reports confirming what I have already written about whether Kanban is only suitable for mature teams. This led to the question of how much change (or not) a Kanban approach requires, which is where I jumped in.
A kanban approach introduces tools to visualise and measure queues and work in progress. While this is a change in process measurement, it doesn’t change the process itself. However, having highlighted the existence of queues and work in progress, it becomes easier for the process to be changed to specifically fix the issues highlighted. Thus a Kanban system sets a team up to begin continuous improvement. Time-boxing, used by XP and Scrum, is one way to manage queues and WIP, which is why they can be such effective processes, and why shorter time-boxes are becoming more popular. There are other ways of managing queues and work in progress, however, and thus Kanban is agnostic to time-boxing. This does not mean that XP is Kanban system however, because XP implicitly, rather than explicitly, manage the queues and work in progress.
Further benefits of time-boxing are the focus that they give, particularly given the finite or limited resources (i.e. people) within a team. Time-boxes give this focus not only by limiting the work-in progress, but also by setting the end of time-box as an SLA for when the work will be completed. Again, Kanban doesn’t lose these benefits, but provides for alternate means to limit work in progress and set SLAs.
To summarise, I believe that a Kanban approach is compatible with XP and Scrum in that it has a focus on managing queues and limiting work in progress, but also introduces alternate ways to achieve these goals which can be used alongside the XP and Scrum tools such as User Stories, TDD and Retrospectives.
Great. I also think that it can really live together.
I have a feeling of deja vue.
Beck in the day I seemed to have a lot of conversations about XP that when something like this:
Them: XP sounds kind-of interesting, except for X, Y, and Z which I can’t even begin to make sense of
Me: well, yes, X, Y, and Z would be fairly crazy, but that’s not what’s recommended, P, Q, and R is.
Them: oh, is that all you meant? That sounds pretty good, but I think you’ll find that your sort of mature, reasonable approach to XP is not what a lot of folks are talking about.
I see the Kanban community running into this syndrome a lot.
What you describe here, Karl, is reasonable and is (for what it’s worth) compatible with XP, Scrum and almost anything else. It’s not very different form what I’m increasingly recommending that my clients do.
And then there’s this sort of thing: “Recently [as of early 2008] I’ve heard lots of discussion about Kanban style development — an approach that breaks that breaks the primary rule of today’s common agile practice: the fixed development time-box.” from Jeff Patton (http://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html)
And then there’s all the “vs” and “switch” articles and posts.
Let’s be clear, as I’ve said elsewhere, I personally see fixed iterations as a transitional practice, I’ve seen lots of teams that were unable to deliver turned around by using it—and I know that teams can be successful without it. I worry that in a haven’t-though-about-it-too-deeply Kanban-oriented world I will have to work against a lot of propaganda stating that fixed iterations are a worthless practice.
Karl,
Nice peace. I think the concern stems from our the tendency to focus on the methodology rather then the problems teams face and their needs.
I don’t prescribe to a single “brand” of Agile. Over the years I’ve learnt to do what works borrowing bits and pieces from were ever and applying them when and where it make sense.
This in itself is a skill, that takes a fair amount of experience. I’ve done things very akin to Kanban in the past, athough my centre tends to be XP.
I like the way Rachel Davies talks about “Generic Agile”, and the idea of utilising an experienced Coach as advocated in XP. My advice to a novice team starting out would be to follow XP in full on say a pilot project with the help of an experience Coach, and then inspect and adapt from there.
My worry is that a load of inexperienced teams begin applying Kanban off the bat, with little exposure to sound “Agile” technical practices and end up in a worst mess then many Scrum teams today.
If this happens then the Agile gets a bad name and none of us wants to see that.
Paul.