Sunday, August 23, 2009

My Kanban Notes, the key takeaways

Kanban in nut shell Visualize the workflow: Split the work into pieces, write each item on a card and put on the wall Use named columns to illustrate where each item is in the workflow
Limit WIP (work in progress) – assign explicit limits to how many items may be in progress at each workflow state.
Measure the lead time (average time to complete one item, sometimes called “cycle time”), optimize the process to make lead time as small and predictable as possible.
Queue limits are designed to avoid premature work. The limit should be large enough to keep the team busy (i.e. there is always something in it for the team to start work on), but small enough to avoid premature prioritisation (i.e. having things sitting in the queue for too long before they are begun).Ideally the queue should be FIFOWIPlimits are designed to reduce multi-tasking, maximise throughput, and enhance teamwork.Reducing multitasking is beneficial for two primary reasons. 1) 20% time is lost to context switching per ‘task’, so fewer tasks means less time lost (from Gerald Weinberg, Quality Software Management: Systems Thinking) 2) Performing tasks sequentially yields results sooner. ...........................................................................................Throughput is also maximised by decreasing WIPSimple examples of this effect are traffic jams, where traffic speed reduces as more traffic builds up, and CPU load, where application performance goes down as CPU load increases. Little’s Law for Queuing Theory:Total Cycle Time = Number of Things in Progress / Average Completion RateTherefore, to improve cycle time there are two options; reduce the number of things in process or improve the average completion rate. Of the two, reducing the number of things in progress is the easier, and once that is under control, then the more challenging changes to improve completion rate can be applied...........................................................................................WIP limit sizes can depend on type of work and size of team and should be adjusted to achieve maximum flow. One approach is to start small (e.g. a limit of 1) and increase as necessary. Another is to start larger (e.g. a limit of half the team size) and reduce until the sweetspot is achieved.
The consequences of using a kanban system are that the Product Backlog can be eliminated, because the immediate queue is the only work of interest, timeboxed iterations (i.e.Sprints) can be eliminated, because work is pulled as necessary, and estimation can be eliminated, because work is not planned into iterations.
.................................................................................................
. ...............................................................................................Flow & Cadence
Flow describes how the work in the system can delivery maximum valueIn lean enterprises, traditional organizational structures give way to new team-oriented organizations which are centred on the flow of value, not on functional expertise.Lean emphasises ‘One Piece Flow’ (means moving one piece at a time between stages in a workflow as opposed to moving batches of work between stages in a workflow)The ‘One Piece’ in a Kanban system for software development can be thought as the Minimal Marketable Feature (M Denne & H Cleland-Huang in Software by Numbers).A minimal marketable feature is a chunk of functionality that delivers a subset of the customer’s requirements, and that is capable of returning value to the customer when released as an independent entity.The consequence of applying the concept of Flow is that emphasis is placed on using larger, value-focussed MMFs, rather than smaller, more incremental Stories.
...........................Cadence is the approach to achieving commitment and reliability with a kanban systemA regular cadence, or ‘heartbeat,’ establishes the capability of a team to reliably deliver working software at a dependable velocity. An organization that delivers at a regular cadence has established its process capability and can easily measure its capacity.Throughput = WIP / Cycle TimeThroughput allows forecasting of future capability, without needing to specify what might be delivered. Cycle Time allows commitment by becoming an SLA with the business
...........................................................
Summary : They key points of Kanban, Flow and Cadence are:A Kanban System manages the workflow in a way which allows the Product Backlog, Timeboxed Iterations and Estimations to be eliminated. Flow is about effectively delivering maximum value by focussing on optimising the value stream of larger MMFs Cadence allows iteration input and output to be de-coupled and achieves commitment and reliability via measurement rather than planning