I bumped into Kanban for the first time the other day. In the current rush for lean, agile, lightweight development methods, Kanban may be an idea whose time has come.
Kanban's first application was in automobile manufacturing. In the 1940s and 1950s, Toyota used the Kanban approach to implement just-in-time manufacturing, which it subsequently identified as a key to its success. Since then, Kanban has been used in a wide variety of industries.
Kanban has been applied to the challenges of software development only recently, but it has already shown promise. Like Agile development techniques in general (and Scrum in particular), Kanban is at its heart quite simple. It is essentially a workflow-management technique. The central idea is that team members create their deliverables only as they are needed by the team members downstream. The goal is to create a smooth process in which each step gracefully hands off work to the next step without backlogs or bottlenecks.
There's more to it, of course, but in the Agile tradition, not much more. Kanban is traditionally implemented with physical cards that are used as communication devices to alert upstream team members that their work is needed downstream. In manufacturing, the cards actually shuttle between different locations on the assembly line. In software development, they are more commonly moved from place to place on a bulletin board. A glance at the board reveals the status of the entire project.
Rather than trying to paraphrase what I've learned about Kanban in a dozen hours of googling and reading, I'll point you to the best resources I've found so you can pursue the topic on your own:
-
David J. Anderson & Associates: David Anderson is the leader of the Kanban movement in software development, at least in the United States. He applied Kanban techniques at Microsoft and later at Corbis, and now makes his living as a consultant in Agile development techniques.
-
Limited WIP Society: This online community calls itself “the home of Kanban systems for software engineering.”
-
How an Automotive Secret Can Make for Better Software: An informative interview with David Anderson.
-
Kanban Development Oversimplified: This article is a couple years old and the introduction goes on forever. But once you get to the heart of it, there's a lot of good tangible information on how and why to apply Kanban to your development process.
-
The Real Differences Between Kanban and Scrum: These two lightweight development techniques are inevitably compared. This comparison isn't the most balanced I read – the author doesn't mask his enthusiasm for Kanban – but it is the most informative.
-
Trichord: Where there are development methods there are, inevitably, tools. Change Vision Inc. is the publisher of Trichord, a simple tool for supporting Kanban development. I haven't used the tool but I like the price: It's free. So why not download it and take a look?
-
From Scrum to Kanban: Here are reflections from a development manager who added Kanban to his team's Scrum toolkit. Good insights.
Okay. That's enough to get you started. Take a look at the sites, follow the links to others, and make up your own mind.
Web recommendation: I love this article: At Least Three Good Reasons for Testers to Learn to Program. Yes, this is the latest in a disturbing series of dreadfully ugly Web sites created by people whose insights into software development would lead you to expect better. Try to look past the atrocious design and appreciate the clarity of the argument. I wouldn't blame you if you followed up by reading other blog posts at the same site (I Reject His Argument is a delight). J.D. says check it out.
J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. He recently relocated to a small town outside Belgrade – stop by if your travels take you through Serbia.