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