A friend recently asked the question ‘Do you have to have similar sized stories in order to make Kanban work in Agile?’ This prompted my response to his question:
“Kanban, as implemented in Lean Manufacturing, is part of a ‘pull’ system. In an ideal pull system when a unit is sold a signal is sent within the pull system to indicate that the system needs to manufacture the unit that has been sold. Often this signal is in the form of a card on a wall or billboard. (’Kanban’ in Japanese actually means ‘billboard’.) More often though, a Kanban system is used to trigger replenishing inventory when inventory in the workflow gets to be too low for the step in the workflow that is consuming the inventory.
“The use of Kanban in Agile really isn’t a pull system though. In Agile, the Agile Wall is used to indicate work that is available but the work is pushed through the system and is waiting to be pulled by the next step in the workflow when they have cycles available to do the work. (The key word there is ‘waiting’ to be pulled.) So, although people pull work from the Agile Wall, the work was pushed onto the wall from the previous step in the workflow.
“A better approach to keeping the system optimized is to not worry about keeping the size of the stories the same in order to keep the flow even, but rather use Theory of Constraints to make sure that the constraint in the system is never starved. Doing anything more than that has little effect on throughput so considering story size becomes a moot point.”
It’s great that the Agile community is embracing the fundamentals of Lean. Eliminating waste and reducing unevenness and overburden are consistent with the tenets of Agile. We just need to be careful in embracing terms and not really knowing what they mean or how they relate to what we do in software development.