Flow Debt is a concept for Kanban systems to understand why CT histograms do not get better despite taking a lot of the obvious steps. Hope you find this useful.
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Understanding flow debt
1. @sudiptal
Understanding Flow Debt
Why some systems do not improve CT after reducing WIP?
Sudipta Lahiri
Head of Products and Engineering
1Sep 22, 2018
3. @sudiptal
Technical Debt
• Technical debt is the implied cost of additional rework caused by
choosing an easy solution now instead of using a better approach that
would take longer
• Compared to monetary debt
• If technical debt is not repaid, it can accumulate 'interest', making it harder to
implement changes later on.
Source: Wikipedia
Sep 22, 2018 3
4. @sudiptal
Understanding Flow Debt
• Given a finite capacity to service demand, when we prioritise working
on one work items over another, we adversely impact the Cycle Time
of the latter
• This is typical of a Kanban system
• Flow Debt means delivering more quickly now at the cost of slower
delivery times later
• Flow Debt quantifies this impact and helps understand the operations
of Kanban Systems
Sep 22, 2018 4
5. @sudiptal
Flow Debt vs Other Metrics
• Flow Debt is a measure that provides a view of what is happening
inside our system
• CT or TP or Velocity: are measures when the items is completed
Sep 22, 2018 5
7. @sudiptal
Let’s model a simple Kanban system…
• Assume:
• A Kanban System with a CT of 2 weeks
• The cumulative number of items entering the system equaled the cumulative
number of deliveries as of a given date (no WIP piling up in the system)
• The arrivals and deliveries are smooth over the given period
• The items are delivered in the precise order they arrived
• All the items are delivered
• Then
• The time the last item spent in the process was also 2 weeks
• The Average CT for the items = 2 weeks!
Sep 22, 2018 7
8. @sudiptal
System A: An ideal “queue” system
• A simple system with Capacity
(WIP) of X cards…
• … with a Fixed Departure Rate of
cards per unit time (1 week)…
• … with the same Arrival Rate of
Cards per unit time (1 week)…
• … meaning 1 card is replenished
when 1 card is delivered!!
CFD
• Average CT = Actual CT for each
card
• This system has 0 Flow Debt!
8Sep 22, 2018
9. @sudiptal
System B: Order is not respected
• What happened here…
• For the items in the lightly shaded region, the FIFO
condition is relaxed!
• Since the Average Arrival Rate = Average Departure Rate,
the Average CT is unchanged!
• However, Actual CT for cards in NOT same anymore!
• Items sloping down have less CT; Items sloping up have more
CT
• So, items sloping down are reducing their CT at the
expense of the items whose CT is getting delayed
• They are experiencing Wait Time now…
9Sep 22, 2018
14. @sudiptal
Why is understanding Flow Debt important?
• Decisions you take today to prioritise one card over another clearly
impact the CT of the future cards
• This behaviour is ONE OF THE REASONS that will make your CT
histogram look worse… let us understand why.
Sep 22, 2018 14
17. @sudiptal
Impact of Flow Debt on CT Histogram
• While the Average CT may remain
the same, the CT spread will look
worse
• Preferring one card over another
will mean this:
• High probability that the preferred
card will finish earlier than the
Average
• High probability that the cards that
started earlier will finish later => their
CT will be longer than otherwise
• This makes future predictability
more error prone
• Average is more misleading than
helpful
17Sep 22, 2018
18. @sudiptal
Beyond CT distribution…
• Just like in the plots that we were showing… its important to periodically
clear our Flow Debt!
• This means that the cards that were held back (in order to prioritise
another) actually get delivered
• If these “delayed” cards continue to be in the process, your Flow Debt != 0
• It will keep growing!
• Flow Debt comes to 0 when you finish all the cards that you had started
• Therefore, START FINISHING!
• If you are not going to work on it, drop it! Don’t leave it on the Board.
Sep 22, 2018 18
19. @sudiptal
• Reach me at:
• @sudiptal
• slahiri@digite.com
• sudiptalahiri.wordpress.com
“Absorb what is useful, discard
what is useless and add what is
specifically your own”
Bruce Lee
Sep 22, 2018
19
Notas do Editor
This is a deterministic system; not a probabilistic system… so, we say X is the CT, all cards have exactly X as the CT.
This is a deterministic FIFO queuo
This Average is the Average till the FIFO order is respected…
Median is half way… in an ordered list.
Average will be skewed to the right by the outlier…
Modal is the highest frequency…
This is analogous to taking extra effort and care to completely address your Technical Debt
Common cause is statistical variation within a system; one needs process control to reduce that variation
Special cause happens because of things that are outside the system
So, when someone is trying to forecast based on common patterns, you take the Special Cause out. However, in critical systems (health related systems), you cannot ignore the Special Cause.
Plus, if Special Cause can become Common Cause if it starts happening regularly.
Little Law is based on the fact that the system is stochastic. It remembers only the recent past.
Flow Debt also has finite memory. If you behave yourself, Flow Debt = 0 and what you had done before, is not relevant. Your past sins don’t matter in the future.