Embracing variablity
(1) variability harmful ?
not always
eg: 'options' in financial world
depends on
Pay-off function
which is the case in development
needs to be assymetric
is under our control
®
or correct it
depends on the total cost
of preventing
eg: prefect speller & typist
vs fixing
eg: using spelling checker
(3) how to make it less harmful ?
alter the 'pay-off' function
via fast feedback
smaller batch sizes
iterations of weeks rather than quarters or years
reduce queues
aka inventories
in manufactoring world
aka unfinished Work in Progress
set WIP limits
maximize flow
minimize lead-time
example:
lotery:
1 chance in 1000 to pick winning 3 digit number
earning 3000 €
buy number
for 3 €
1 chance in 1000 to win
now change the pay-off function
buy digit for 1€
buy 2nd & 3d digit after getting feedback
cost of 3 digit nr is now (on average) 1,11 €
nothing else has changed
but cost reduced significantly
buy info
on unproductive threads
or paths that you can abandon
(5) Plan for variability
theory
relation between size of Queues & % of utilisation of queues
cost of 'slack'
not using 100% of the queues
cost of queue size
aount of unfinished work
breakeven
around 85% - 90% usage
queue size goes up exponentially when nearing 100% usage
practice
manufactorers
know that
keeping 10-15% slack is needed
to be able to meet expected delvery dates
sw project managers
don't know that
planning with 98,5 % usage
is the cause of so much of the delays and unpredictability they encounter
only work in a deterministic world
which we are nog living in
don't see the queues
it's information
stocked in inventories
fix
make queues visible
information radiators
show size
but not cost !
architecture
modules often too toghtly coupled
DDD
(4) How reduce efficiëntly ?
binairy search
is very efficient
why ?
search by 'zooming' in
information theory
probability
snow in dec in denmark
near 100%
snow in july in los angeles
near 0 %
in test with
binary outcome
maximul efficiency is reached when probability on true or false = 50%
true/false
other outcomes (fuzzy)
more complex
simply put
3 possible results
33% probality
maximize probality over all results
corrective action
only usefull when having cummulative invariants
as is NOT the case in manufactoring
effects of invariants are 'reset' between states
as IS the case in product development
previous phases influence following phazes
quickly & aggressively
to make correction matter
scrum
timeboxing
Kanban
WIP limits