Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
welcome to
Agile Learning Labs
Understanding Kanban
Nikos Batsios
Agile Coach
personal thoughts: https://escapelocaloptimum.wordpress.com
A Kanban Bitamin Injection start from where you are right now
If we have nothing to look at, we have nothing to act on
Visual systems like Kanban, draw their power from our preference for visual information
Once we see our work and the process related to it, we create and build a
shared understanding for Business and IT people
…
Understanding Kanban
Principles or Practices call them as you want :-) ★ Visualize ★ Limit Work In Process ★ Manage Flow ★ Make Process Policies Explicit ★ Implement Feedback Loops ★ Improve Collaboratively, Evolve Experimentally
✤ Visualising your work
Visualising the work
Make all necessary information visible when people need it, enabling effective
collaboration and improvement through understanding how work works.
To achieve this you have to make polices explicit and make use of information
radiators
Information Radiators
✤ Big visible displays ✤ Keep them easy to update ✤ Keep them big ✤ Use them or lose them ✤ For you and other interested parties
The Kanban Boarddifferent colour could indicate different types of work (classes of services), could help to decide how to prioritise
different stages of your workflow shown as columns
the actual work item. add just enough information required to understand the status of the work item
swim lanes can be used to split up the board to handle different types of work on the same board. as example here is a swim lane to indicate expedite, urgent work items
The Kanban Board
✤ things to know when working as a team ✴ who is working on what? ✴ are we focused on highest priority items? ✴ are there any blocked items remaining
unresolved? ✴ are there place where queues are created
due to bottlenecks?
The Kanban Board
✤ Use a big board to radiate information about your work
✤ Physical or electronic board can serve different purposes. try to make the most out of them
✤ Use daily standup meetings in front of the board to collaborate and learn together
Workflow Mapping✤ Let the board reflect your ACTUAL workflow
✤ Learn by using examples
✤ Do not think too much. be prepared for changes
use abstract names for stages to fit your different
types of work not all types of work go through all the stages.. and
that is ok! (e.g bugs!)
Queues
✤ Examples of Queues ✴ Todo: fist column ✴ Ready for Development: things that have been
analysed and are ready to be picked by developers ✴ Development Done: items that have been developed
and now are ready for testing ✴ To Test: stuff that is ready to be tested
queues, can help you manage handoffs, get more even flow of work, give visual signals
when work can start!
Queues
which criteria need to be met in order for me to move a work item from one
column to another?
Entry and Exit Criteria
keep in mind that criteria and policies are incrementally changing and improved! review them at retro, RCAs, always ask: did we
follow the criteria?
✤ Work Items
overview
show a blocker
show progress on a work item
gather data for check in and check out!
mark an important deadline that you
cannot miss!
reference to an electronic tracking
system
estimated size of the work item
who is working on that
work item description
RED = defect indicate the type of work
Types of Work
✤ Different colours for different types of work
✤ Helps prioritization
✤ Avoid yellow sea
✤ Use colours for a reason
✤ Work In Process
What is Work in Process
✤ All the work that you have going on right now.
✤ Work that you actually working on, work that is waiting to be verified or deployed, and also work not started yet.
✤ It is all the work that you need to do to deliver value to your customers
it does not mean to do less work, it means do less work at
the same time. limiting WIP helps you complete more work in total more
quickly
Little’s Law
time through the process for each item
number of items you work on at the same time
average time it takes to complete each item
✤ Little says that the more things you have going on at the same time, the longer each thing will take
example 1 example II example III
Effects of too much WIP✤ Context switching (keep your own WIP minimum!, finish
one prior starting another)
✤ Delay causes extra work due to long feedback loops (think of a bug introduced in the past and you learn about it quite late!)
✤ Increased RISK (high WIPs -> increased lead times -> market loss?, obsolete features? e.t.c
✤ More overhead (need for coordination, reporting, tracking, planning e.t.c)
✤ Lower Quality due to long lead times, prolonged feedback loops
✤ Decreased Motivation
✤ Limiting Work in Process
Searching for WIP limitswhat is the right
WIP for your and your time right now?
well, depends! how much pressure there is to improve your
organization? which is the number of people in your team/org and which is their
availability? which is the same and size of your work items?
..
✤ Lower is better than higher
✤ People idle or work idle
✤ No limits it is not the answer
Lower is Better than Higher
✤ Lower WIP -> Better lead times -> Faster feedback -> Force you see and remove impediments -> Improve the flow of work items
✤ Too low WIP -> will surface too many problems -> you might end up resolving problems more than delivering value
No Limits it’s not an Answer
removing your WIP limits will remove your willing to improve. without WIP limits nothing triggers us to get
better!
unused boards, no flow
Principles for WIP limits
✤ Stop Starting, Start Finishing
✤ One is not the answer
the more you finish the more you finish,
John Seddon
Limiting WIP per column
✤ Start from the bottleneck ✴ A bottleneck is a step in your
workflow that slows your flow down ✴ Limit the step feeding the bottleneck
to keep it from being flooded ✴ Drive the team to resolve the
bottleneck
increase the throughput from the upstream, will create
queue!
increase the throughput from the downstream, useless, since
there will be no work!
but what about developers? what they should work on?
Limiting WIP per column
✤ Pick a column that will help you improve ✴ example ✴ pick the development column ✴ add a limit
1. 1.5 the number of developers 2. double your current items and reduce
them 20%-30% periodically 3. just pick a number!..(avoid paralysis by
analysis) ✴ collaborate to finish fewer items faster
Limiting WIP per column
Imagine John, the guy that build an app and he is the one that every decision related to this app should go through him! ✴ What will happen if John is on vacations? ✴ Are there any work items that do not require John
involvement? ✴ Do you think that autonomy and mastery might increase if
more people of the team could get into this app? ✴ If we free up some time from John wouldn’t be great for him
to work on more complex stuff that might be the only one to know?
✤ Managing Flow
FLOW✤ One-Piece continuous flow means
✴ no waiting, delays, handoffs, over-production ✴ just value-adding activities
✤ Waste is something that stops work from flowing
✤ Examples of waste ✴ Partially done work, extra features, relearning,
and handoffs
✤ Do not become obsessed with removing waste, instead look at the Return of Time Invested
all we are doing is looking at the time from the
moment the customer gives us an order to the point when we collect the cash. and we
are reducing that time line by removing the non value-added wastes
Taiichi Ohno
what is stopping the work from flowing? What does the customer want from this
process? (end customer, internal customer e.g in the next
phase of productions e.t.c)
there is no greater waste than overproduction,
Taiichi Ohno
Helping the Work to Flow✤ Limit Work in Process (resource efficiency versus flow efficiency, MRI or fire department)
✤ Reduce Waiting Time (measure waiting time, make work ready for next stages)
✤ Remove Blockers - Never been blocked! The Prime directive of Agile Development (swarming, demonstrate shared ownerships and responsibility, work outside of your specialization, reflect on your blockers, keep data, avoid starting new work if you are blocked)
✤ Avoid Rework (build quality-in from the start, avoid doing the wrong things right- failure demand)
✤ Use Cross Functional Teams (all skills, less handovers & dependencies
✤ Use Service Layer Agreements (define cycle time for items) and time box your work (review & adapt work)
Helping the Work to Flow
✤ As David Joyce suggested: ✴ Can you help finish work that is already in process? Do that!
✴ Do you have the skills needed for that? Look for bottlenecks or other things that slow down your flow, and help resolve them
✴ Do you not have the right skills to help resolve a bottleneck or remove a blocker? Pull new work into the system, as long as you do not exceed the WIP
✴ If you still find yourself without work, find something interesting that you think will help the team, and do that
✴ Too much idle time. Start cooperating more, pair more, learn more
Metrics
Throughput
✤ One day in Kanban Land
References
✤ Kanban in Action ✤ Real World Kanban ✤ Kanban from the Inside ✤ Lean from the Trenches ✤ One day in kanban land ✤ Essential Kanban ✤ Lean Software Management: BBC Worldwide Case Study