Kanban is something that features in both Lean Six Sigma and Agile software development. It descended from the Lean improvements of the Toyota Production System, and is a proven approach to optimise effectiveness of a production line system. How then can it be useful for a project manager, if it’s about production lines for motor vehicles I hear you ask? Well, for software development projects at least, the software development life cycle of individual software “features” is very much like a production line. Ok, so you aren’t creating the exact replica of a specific part over and over again - they will vary. But if features are segmented such that they are all of a similar size and complexity, the production line approach can work.

What’s the value of this production line approach? Simply, it’s the speed of throughput - or Lean Cycle Time. Ever had a of scope item/task/work package just drag on forever, with the percentage complete painfully increasing by just a couple of imprecise percentage points per day? Ever just want to get stuff moving and feel like work is reaching a completed state? Kanban may be for you. It links to Agile because Agile development is all about delivering early value to the customer and incrementally improving it with further deliveries - incremental delivery. The Kanban production-line system focuses on getting throughput in the software development lifecycle, so stuff gets “done” (remember: we need to define that in agile!)

So, what are it’s jet features and how does it work? I’d highlight two critical components:

(1) Visual Kanban Board - Kanban uses a visual board to bring attention to the startus of each item that is Work In Progress (WIP), and uses columns to delineate the progress with each column representing a phase of production. An item is recorded in a “card” that starts in the left hand column and progressively moves through each column, representing each stage in the process until it reaches the right hand side and is “done”. In the software development lifecycle these will be things like: backlog, selected for development, in development, testing, user testing, implementation, done. The precise columns can be more extensive, and some organisations would use two columns m for each phase: “Waiting” or “In Progress”, meaning that waiting time (which in Lean is Waste) can be more clearly identified. M I’d recommend you document in your project approach/tailoring the precise standards around each phase: Input & Output Criteria and Evidence Required at each stage (test scripts, approvals etc)

(2) Limiting Work In Progress (WIP) - While the Kanban board is a visually arresting part of the approach, the real key lies beneath the surface in how it limits production in the system. Kanban knows that there will be natural bottlenecks in certain stages of the process, so pushing more work to in progress that can pass the constrained part of the process is pointless - it won’t speed up delivery, is just wasting resources, diverting attention and adding complexity by having more plates spinning. Kanban lImits WIP by only allowing so many items in production in any one time, achieved by limiting the total number of work cards on the board, or by only allowing so many work items in each column of the Kanban board at any one time. The focus is then on expediting the few items that are WIP before looking at new scope; this is achieved by reviewing the Kanban board in a right-to-left manner and the potentially using approaches such as swarming - having many people focus on a single item. When reviewing the board, ask: what do we need to do to get the items neatly done across the finish line? Then as we move leftwards through the columns what do we need to do to get each item moving to the next column along? Only at the end of this process do you reach the left hand end of the board and then consider bringing in new scope into WIP. In this way Kanban is regarded as a “pull” system rather than a “push” system.

What are your thoughts on Kanban and have you had much success in implementing it on your projects? Let us know your thoughts below!