Building the Millennium Falcon

Transcription

Building the Millennium Falcon
Building the Millennium Falcon A Lean so5ware development case study WHO AM I? XP Coach Senior Engineer Your story teller Agenda Lego Star Wars A lean approach Recap on Lego Recap on Star Wars Episodes 1-­‐3: We don’t really talk about them Episode 4: Boy realises he can do magic, falls in love with girl, sHcks it to the evil empire Episode 5: Boy’s mate gets frozen, boy learns how to *do* magic, finds out his Dad runs the evil empire. Episode 6: Boy understands he loves the girl as a sister <phew>, boy fights Dad, Dad fights boy, boy beats Dad, old cackling guy fights boy. Dad beats old cackling dude. Cut to party. All clear now? Recap on Lean A philosophy that enables moHvated people to build the right stuff for the right customers at the right Hme (me) (Your definiHon may vary) Now… Witness the firepower of this fully operaHonal conference talk office
A long time ago, in a galaxy far,
far, away…
^
Lean
Lego
Episode 4
A NEW BOX 300 double-­‐sided pages > 5000 pieces James Alex Seema Alex Andy The science bit… A Story Wall Swim lanes Ready for development A burn-­‐up chart A cumulaHve flow chart 3d
2d
1.5d
10d
Activity
0.5d
30d
Activity
Activity
A value stream map A control chart Episode 5
THE LEGO STRIKES BACK We took a look at the first set of instrucHons… … and all piled in to the box … then we all put the bits together It went really slowly… See? 10 mins
5 mins
1 min
Finding
Pieces
for Step
Assembling
pieces
Tip 1 Understand the system you are working in Turns out shared state isn’t that effecHve here… Backlog
Pieces being
Pieces being
found
assembled
Done
Turns out shared state isn’t that effecHve here… Backlog
Pieces being
Pieces being
found
assembled
Done
Turns out shared state isn’t that effecHve here… Backlog
Pieces being
Pieces being
found
assembled
Done
Turns out shared state isn’t that effecHve here… Backlog
Pieces being
Pieces being
found
assembled
Done
Turns out shared state isn’t that effecHve here… Backlog
Pieces being
Pieces being
found
assembled
Done
Tip 2 Use Kanban / story walls to visualise your system the result of all this? Complete
Half way
through
0
opened
the box
End day
1
Cows
come
home
hell
freezes
pigs fly
Heat
death of
the
Universe
L s
s
e
Episode 6
c
o
pr
THE RETURN OF THE JEDIS ^
A funny thing happened next… Finding
Pieces
for Step
Assembling
pieces
We moved from this: Everybody doing this Finding
Pieces
for Step
Assembling
pieces
followed by To this: Some people doing this Finding
Pieces
for Step
Some people doing this Assembling
pieces
At the same Hme as See? The constraint was idenHfied 10 mins
5 mins
1 min
Finding
Pieces
for Step
Assembling
pieces
And elevated… Backlog
Pieces being
Pieces being
found
assembled
Done
…turns out you can find pieces in parallel Tip 3 Use the Theory of Constraints: IdenHfy and Eliminate Remember what Mary Poppendieck said about Queues..? This started to happen… We added a queue Backlog
Pieces being
Pieces ready
Pieces being
found
for assembly
assembled
Done
based on the pages in the manual The folks assembling pieces pulled from the queue Backlog
Pieces being
Pieces ready
Pieces being
found
for assembly
assembled
Done
The folks finding pieces pushed into the queue Backlog
Pieces being
Pieces ready
Pieces being
found
for assembly
assembled
Done
Tip 4 Introduce queued states into your system to help visualise bohlenecks And we got faster 300
266
233
# pages
200
166
133
100
66
33
0
4
8
12
16
20
24
# hours
28
32
36
40
44
48
Tip 5 Use burn-­‐up charts and yesterday’s weather to track progress But it didn’t stop there The team became T-­‐Shaped Breadth of knowledge
Depth of experience
Specialists in assembling Specialists in finding pieces and those specialists noHced this… length of time to find a piece
9
8
7
6
5
4
3
2
1
0
time
Finding a piece is a funcHon of piece size and the total number of that type of piece available than this This takes longer so we did this… length of time to find a piece
9
8
7
6
5
4
3
2
1
0
time
Tip 6 Use control charts to visualise variability And then work to reduce it There were other interesHng things happening too We used defects tracking… And work in progress limits… Backlog
Pieces being
Pieces ready
Pieces being
found
for assembly
assembled
Max 4 Done
And we swarmed around bohlenecks Backlog
Pieces being
Pieces ready
Pieces being
found
for assembly
assembled
Done
Tip 7 Limit WiP and then pull more work from *up stream* if you are blocked … 300
266
233
# pages
200
166
133
100
66
33
0
4
8
12
16
20
24
# hours
28
32
36
40
44
48
J Summary Understand your system – use systems thinking tools Visualise work using kanban boards / story walls Work to eliminate constraints in your system, use the Theory of Constraints Work in Progress, Swarming helped keep throughput high Yesterdays weather and burnup Use control charts to idenHfy and reduce variability And finally This actually happened We spent nearly 6 weeks (on and off) building it The team was completely self-­‐organising No one was telling us how to do this, it just happened this way Why did it happen this way? 10,000 hours? Combined > 50 years of experience working with ‘agile’? Thanks! [email protected] Bovon.org @boicy