This lecture focuses on Kanban and the way flow moves through the system. Kanban is a visual representation using swimlanes and a pull mechanism to show states within a flow system. The lesson focuses on the structures and metrics within Kanban.
Kanban
Kanban is an evolutionary method that was created by Taiichio Ohno an engineer who worked for the car manufacturers for Toyoto in the 1950's to improve process. Kanban translates as signal (Kan) board (ban). Its main objective is to control the level of flow (or efficiency) and optimise it on the basis of value that is expressed visually. The Kanban approach was developed for Software developers in the 1990's. It was the visual representation to manage the rate of flow for the development process, to enable any blockages and impediments that can affect rate of the delivery.
Kanban Board
The visualisation of the flow is a lean approach that helps teams know what tasks or jobs are being completed from a particular process flow. Process sub-tasks are shown in swimlanes, as a sub-task move from left to right the transition in the process is reflected. This enables teams to visualise the work being done, the rate and whether it has been completed or not based on this we can gain metrics where we can improve the efficiency and predictability of a process. A typical Kanban board is illustrated below:
--------------- Stages of the workflow --------------->
To Do [4]
I want Yield calculated to Months
So that calculation is correct
I want a text box to input DOB
So that I can submit age
I want button
So that the age can be calculated
Doing [3]
I want to add an index
So that consumer query does not time out
I want to install veracode
So that developers can check code
In Test [4]
I want to see all country codes
So that I can map these to the data
Done
I want to validate the test cases
So that QA can start test
Work In Progress (WIP) Limits
Kanban takes an approach to limit the number of items that can be worked on at any given stage, this is to ensure a developer or a tester will not be taking on too many tasks and be a bottleneck in the process.
Calibrating the correct limit that the team can work on will control the flow of work in the system and reduces the delays. This limit is known as the Work In Progress (WIP) limit and is shown at the top swimlane in the diagram.
Each limit is transparent to all and is shown in brackets, No tasks can be taken in if the WIP limit has been met.
Pull mechanism
The Kanban is a pull system pulling items from left to right, by setting work in progress (WIP) limits forces a 'pull' once there is capacity to feed in another task, this enables the kanban system with a flow mechanism. More importantly new tasks are not started until the tasks are completed.
The main objective to Kanban is not only to achieve good flow but also increase predictability by reducing delays which are often seen as a bottleneck to delivery, so the method allows an pro-active approach and configure the delivery rate. Scrum and Kanban work really well in managing the flow within work being completed.
Kanban Cards
Kanban card are visual cards that are placed on the board, these can be post-its or simple cards, from an agile perspective it's useful structuring these in terms of the user-story related tasks. Its also useful placing any acceptance criteria at the back of the card so the developer or tester can see the associated conditions.
The cards are then moved across the board based on the workflow stages and are amended by the team accordingly.
Kanban Principles
Kanban has 6 main principles asociated to it, this forms the shape of the flow:
1. Visualise the workflow
The whole team need the ability to visualise the 'where we are' and 'what is left to do'. By visualising this in the form of swimlanes allows the flow to be transparent. Activities or tasks should be illustrated in the form of Post-its or kanban cards.
2. Limit Work In Progress
By allowing Work In Progress (WIP) limits allows the flow to be optimised at a given time by setting the maximum number of work items that can be completed for a stage of the workflow. When any workflow state reaches its work in progress limit, then no new work can be taken in. If there is no WIP limit on the board then it is not Kanban.
3. Manage Flow
The objective for Managing the flow is to make the flow smooth and efficient and reducing the Cost Of Delay. A good example for this is to reduce the batch size this will allow task to flow through the system much faster, the likelyhood would be delivered work hitting its target velocity.
4. Make policies explicit
All process policies around the Kanban should be transparent and fully understood. A good example of this is WIP limits which are clearly defined and published.
5. Implement Feedback loops
There are meeting ceremonies in Kanban such as Daily Stand-ups where the entire Kanban teams stand round and discuss items on the board. There are also review meetings to discuss impediments or how to improve the efficiency and flow for some processes.
6. Improve collaboratively / improve iteratively
Large queues are identified as bottlenecks when left idle by Managing Queue lengths we can reduce the lead times, reduce the risk of work being completed and improve quality using Kanban metrics and an Cumulative Flow Diagram.
Kanban Core Values
There are nine core values to Kanban
The underlying principle is "...Start with what you do now...". For any system its very important to understand what the system does, but in order to gain the greatest of benefit, understanding the detail the more focused will be the solution. Its this mindset to embrace the process to be changed.
"...Agree to pursue incremental, evolutionary change..." - Incremental is very much an agile word, where delivering benefit over time in smaller pieces, where the sum of the parts make the whole.
"... Initially, respect current roles, responsibilities & job titles ..." In Kanban there is an understanding that it is the people that perform the work and respect for their abilities is vital. Foundations for this is trust, to trust in there abilities and beliefs. Promoting positive challenge in the way we do and aproach things.
".. Encourage acts of leadership at all levels in your organization – from individual contributor to senior management ..." There is no one leader, its always encouraged to lead from the front. No matter how small it is important to take leadership on the task that you are assigned to do.
"... Manage Flow... " The three main variables for flow are smoothness, predictability and sustainability, the objective is to remove any obstacles, delays and impediments from the flow.
"... Manage to timely completion the smooth flow of customer-recognised value over a range of timescales ..."
"... Make policies explicit and Implement feedback loops ..." This is related to transparency, policies are related to process rules around the tasks in a Kanban and the service level agreements associated to them. Feedback loops focus on daily stand-ups where the work items are reviewed.
"Limit work-in-progress (WIP)" - this a strategy which allows the team to focus on what current tasks needs to be completed before a new task can be started, by using limits we are trying to optimise the maximum work that needs to be completed.
" ... Improve collaboratively, evolve experimentally ...", this is related to transparency, working collaboratively with the objective for handling the flow is imperative and allows the retrospective discussion towards improvement.
Kanban Metrics
The power of Kanban is the qualitative nature of it, there is clear analytics that can be driven from a Kanban board, it is important there is not too much work in the system. There are four main metrics in a Kanban board:
1. Work In Progress (WIP)
These are the items in the Kanban swimlane that have started but not yet completed. The Work In Progress can be limited (or WIP limit), the objective is to limit the number of items the Kanban team can work on concurrently so the items will flow through the system faster. This is based on Queueing Theory.
The danger for not setting WIP limits the Kanban team can get overloaded with tasks and become a bottleneck in the workflow, so managing the queues are so important.
2. Cycle Time
This also referred to as Lead time or Waiting time. This is the time taken for a task started in the workflow to when it completes at the end of the workflow. In simple terms the cycle time for the 100M sprint is about 10 seconds. The cycle time is important in terms of calculating the efficiency of a task in Kanban, if the cycle time increases we could assume if no factors had changed we are experiencing innefficieny in the process.
3. Work Item age
This is the age or time of a work item that has started to the current time and day. if a work Item has started and the cycle time is 2 days, if the work item age is 3 days then we know the item age exceeds the cycle time.
4. Throughput
Number of task items finished or done per unit time. This is also known as the throughput rate
Little's Law
Little's Law can be applied to Kanban which states that the average number of customers in a stable system is equal to the average arrival rate multiplied by the average time that a customer spends in the system. Using the three variables we can associate these to the Kanban metrics.
Average Customers = average arrival rate x customer spends in the system
Each Kanban stage is shown cumulatively as an area map so that the visual comparisons can be made regarding the resources and efficiency related to the tasks being completed.
Average WIP = Cycle time x Throughput
Re-arranging the formulae using algebra we can use Littles Law to calculate the Throughput
Throughput = Average WIP / Cycle time
Cycle time = Average WIP / Throughput
Cumulative Flow Diagram (CFD)
A Cumulative Flow Diagram is based on queueing theory and can be used to control the flow of the Kanban process. It is a sophisticated visual tool that is made up of an area graph each detailing the quantity of work that resides in workflows for a given state. The four main variables are
Each Kanban stage is shown cumulatively as an area map so that the visual comparisons can be made regarding the resources and efficiency related to the tasks being completed. The y-axis contains the tasks or storypoints and the x-axis the duration. Each band of the CFD is shown for each part of the Kanban swim lane, the area graph always moves upwards to depict the tasks being completed, the graph should never go down.
Cumulative Insights
The following analytics are illustrated from the CFD diagram
1. Swim lanes are shown as bands (1-5) each band contains the process stage for the tasks. The objective is to move tasks across the Kanban from a user-story from the backlog (band 1) to completion (band 5). This is shown as 'Done' and the flow of tasks are trying to achieve this. The end objective of the flow forms the base of the graph and area of growth.
2. For each band there is a 'top' line the arrivals and a bottom line departures, the objective is to show a constant width between the two, any narrowing of the band suggests capacity maybe available, any widening of the bands denotes bottlenecks.
3. No of Tasks in the queue for the workflow is shown by the distance between the arrivals and the departure rates. The queue should also stay within the limits of any Work In Progress (WIP) limits set.
4. Delays in the bands are shown horizontally between the arrivals and departure lines, the wider the gap the greater the delay this can be monitored against agreed SLA's.