There is a lot of buzz in the community over kanban lately.
Although I think there are some good ideas in the Lean/kanban system, I think that most of it’s power is lost when it is applied to software engineering.
I’m very familiar with the whole notion of Lean/kanban/Value Streams etc, having developed software to essentially automate such a system for the Semiconductor Industry.
The product was so concerned with value streams and product flows it was called — wait for it — wait for it — FlowStream. This Software was probably used to run most of the factories making chips for the machine you are using right now.
But we didn’t use a kanban system for developing the software — why not?
1 word — Cycle Time
The whole key that makes a JIT/Kanban system work is known cycle time for the various process steps.
Given the known time, to say, etch, or lithograph, a wafer, and what machines are in use, one can map out how they should flow through the factory to maximize value.
However — in software development — these cycle times — are usually unknown.
Therefore, it is hard or impossible to know, just when in time you should use a Kanban signal that someone should start working on something.
Keep in mind kanban is designed for the serial production of manufactured product. It is not designed to DESIGN new product.
In software, this would be using kanban to say, manufacture and ship out floppies or cd-roms, not create the product itself.
I certainly value Lean principles, and reducing waste, and to me that requires experienced architects not coaches.
To me most of kanban enthusiasm is about getting to more of a flow and get out of sprints, which is fine, but there are a lot of ways to do that.
To me, adopting kanban is like using Japanese words without understanding what they really mean.
In the future I’ll blog about Management by Walking around (“Gemban”) and why most manufacturers do not even use the kanban system as popularly described anymore. But for the impatient the reason is because they don’t need to — technology has advanced.
Please note: I am referring to well known “kanban” systems in this post, not proprietary implementations such as Anderson’s “Kanban”.