ݺߣ

ݺߣShare a Scribd company logo
Building	
 the	
 Millennium	
 Falcon	
 

   A	
 Lean	
 so5ware	
 development	
 case	
 
                      study
WHO	
 AM	
 I?
Lean and lego
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
Lean and lego
Lean and lego
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               1.5d              0.5d



2d              10d              30d


     Activity         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               Assembling
 for Step                pieces
Tip	
 1	
 


Understand	
 the	
 system	
 you	
 are	
 
         working	
 in
Turns	
 out	
 shared	
 state	
 isn’t	
 that	
 effecHve	
 here…	
 


                               Pieces being   Pieces being
                    Backlog       found        assembled     Done
Turns	
 out	
 shared	
 state	
 isn’t	
 that	
 effecHve	
 here…	
 


                               Pieces being   Pieces being
                    Backlog       found        assembled     Done
Turns	
 out	
 shared	
 state	
 isn’t	
 that	
 effecHve	
 here…	
 


                               Pieces being   Pieces being
                    Backlog       found        assembled     Done
Turns	
 out	
 shared	
 state	
 isn’t	
 that	
 effecHve	
 here…	
 


                               Pieces being   Pieces being
                    Backlog       found        assembled     Done
Turns	
 out	
 shared	
 state	
 isn’t	
 that	
 effecHve	
 here…	
 


                               Pieces being   Pieces being
                    Backlog       found        assembled     Done
Tip	
 2	
 


Use	
 Kanban	
 /	
 story	
 walls	
 to	
 visualise	
 
              your	
 system
the	
 result	
 of	
 all	
 this?
Complete




Half way
through




   0
                                                         Heat
       opened    End day   Cows     hell
                                            pigs fly   death of
       the box      1      come   freezes
                                                         the
                           home
                                                       Universe
L
Episode 6                  pr  ocess
THE	
 RETURN	
 OF	
 THE	
 JEDIS	
 
                             ^
A	
 funny	
 thing	
 happened	
 next…	
 




                          Finding
                           Pieces          Assembling
                          for Step           pieces
We	
 moved	
 from	
 this:	
 



                        Everybody	
 
                        doing	
 this	
 
                             Finding
                              Pieces                         Assembling
                             for Step                          pieces



                                        followed	
 by
To	
 this:	
 



                  Some	
 people	
             Some	
 people	
 
                  doing	
 this	
              doing	
 this	
 
                      Finding
                       Pieces                       Assembling
                      for Step                        pieces



                          At	
 the	
 same	
 Hme	
 as
See?
The	
 constraint	
 was	
 idenHfied	
 


                       10 mins              5 mins



                                    1 min

                         Finding
                          Pieces            Assembling
                         for Step             pieces
And	
 elevated…	
 	
 

                                Pieces being   Pieces being
                     Backlog       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	
 


                          Pieces being   Pieces ready   Pieces being
                                                                       Done
            Backlog          found       for assembly    assembled




                      based	
 on	
 the	
 pages	
 in	
 the	
 manual
The	
 folks	
 assembling	
 pieces	
 pulled	
 from	
 the	
 queue	
 


                      Pieces being   Pieces ready   Pieces being
                                                                   Done
            Backlog      found       for assembly    assembled
The	
 folks	
 finding	
 pieces	
 pushed	
 into	
 the	
 queue	
 


                       Pieces being   Pieces ready   Pieces being
                                                                    Done
            Backlog       found       for assembly    assembled
Tip	
 4	
 


 Introduce	
 queued	
 states	
 into	
 your	
 
system	
 to	
 help	
 visualise	
 bohlenecks
And	
 we	
 got	
 faster
300

          266

          233

          200

          166
# pages




          133

          100

          66

          33

           0
                4   8   12   16   20   24    28   32   36   40   44   48
                                   # hours
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	
    Specialists	
 in	
 
 assembling	
          finding	
 pieces
and	
 those	
 specialists	
 noHced	
 this…	
 

                                           9

                                           8
          length of time to find a piece



                                           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




       1
                           6




           2
               3
                               7




                   4
                                        9




                       5
                                   8




   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…	
 


                       Pieces being   Pieces ready   Pieces being
                                                                    Done
            Backlog       found       for assembly    assembled




                                      Max	
 4
And	
 we	
 swarmed	
 around	
 bohlenecks	
 


                    Pieces being   Pieces ready   Pieces being
                                                                 Done
          Backlog      found       for assembly    assembled
Tip	
 7	
 


 Limit	
 WiP	
 and	
 then	
 pull	
 more	
 work	
 
from	
 *up	
 stream*	
 if	
 you	
 are	
 blocked
…
300

          266

          233

          200

          166
# pages




          133

          100

          66

          33

           0
                4   8   12   16   20   24    28   32   36   40   44   48
                                   # hours
Lean and lego
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!	
    jalewis@thoughtworks.com	
 

                               Bovon.org	
 

                                  @boicy

More Related Content

Lean and lego

  • 1. Building the Millennium Falcon A Lean so5ware development case study
  • 4. XP Coach Senior Engineer Your story teller
  • 5. Agenda Lego Star Wars A lean approach
  • 7. 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?
  • 8. 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)
  • 9. Now… Witness the firepower of this fully operaHonal conference talk
  • 10. office A long time ago, in a galaxy far, far, away… ^
  • 17. James Alex Seema Alex Andy
  • 24. 3d 1.5d 0.5d 2d 10d 30d Activity Activity Activity A value stream map
  • 26. Episode 5 THE LEGO STRIKES BACK
  • 27. We took a look at the first set of instrucHons…
  • 28. … and all piled in to the box
  • 29. … then we all put the bits together
  • 30. It went really slowly…
  • 31. See? 10 mins 5 mins 1 min Finding Pieces Assembling for Step pieces
  • 32. Tip 1 Understand the system you are working in
  • 33. Turns out shared state isn’t that effecHve here… Pieces being Pieces being Backlog found assembled Done
  • 34. Turns out shared state isn’t that effecHve here… Pieces being Pieces being Backlog found assembled Done
  • 35. Turns out shared state isn’t that effecHve here… Pieces being Pieces being Backlog found assembled Done
  • 36. Turns out shared state isn’t that effecHve here… Pieces being Pieces being Backlog found assembled Done
  • 37. Turns out shared state isn’t that effecHve here… Pieces being Pieces being Backlog found assembled Done
  • 38. Tip 2 Use Kanban / story walls to visualise your system
  • 39. the result of all this?
  • 40. Complete Half way through 0 Heat opened End day Cows hell pigs fly death of the box 1 come freezes the home Universe
  • 41. L
  • 42. Episode 6 pr ocess THE RETURN OF THE JEDIS ^
  • 43. A funny thing happened next… Finding Pieces Assembling for Step pieces
  • 44. We moved from this: Everybody doing this Finding Pieces Assembling for Step pieces followed by
  • 45. To this: Some people Some people doing this doing this Finding Pieces Assembling for Step pieces At the same Hme as
  • 46. See?
  • 47. The constraint was idenHfied 10 mins 5 mins 1 min Finding Pieces Assembling for Step pieces
  • 48. And elevated… Pieces being Pieces being Backlog found assembled Done …turns out you can find pieces in parallel
  • 49. Tip 3 Use the Theory of Constraints: IdenHfy and Eliminate
  • 50. Remember what Mary Poppendieck said about Queues..?
  • 51. This started to happen…
  • 52. We added a queue Pieces being Pieces ready Pieces being Done Backlog found for assembly assembled based on the pages in the manual
  • 53. The folks assembling pieces pulled from the queue Pieces being Pieces ready Pieces being Done Backlog found for assembly assembled
  • 54. The folks finding pieces pushed into the queue Pieces being Pieces ready Pieces being Done Backlog found for assembly assembled
  • 55. Tip 4 Introduce queued states into your system to help visualise bohlenecks
  • 56. And we got faster
  • 57. 300 266 233 200 166 # pages 133 100 66 33 0 4 8 12 16 20 24 28 32 36 40 44 48 # hours
  • 58. Tip 5 Use burn-­‐up charts and yesterday’s weather to track progress
  • 59. But it didn’t stop there
  • 60. The team became T-­‐Shaped Breadth of knowledge Depth of experience
  • 61. Specialists in Specialists in assembling finding pieces
  • 62. and those specialists noHced this… 9 8 length of time to find a piece 7 6 5 4 3 2 1 0 time
  • 63. Finding a piece is a funcHon of piece size and the total number of that type of piece available than this This takes longer
  • 64. so we did this…
  • 65. length of time to find a piece 1 6 2 3 7 4 9 5 8 0 time
  • 66. Tip 6 Use control charts to visualise variability And then work to reduce it
  • 67. There were other interesHng things happening too
  • 68. We used defects tracking…
  • 69. And work in progress limits… Pieces being Pieces ready Pieces being Done Backlog found for assembly assembled Max 4
  • 70. And we swarmed around bohlenecks Pieces being Pieces ready Pieces being Done Backlog found for assembly assembled
  • 71. Tip 7 Limit WiP and then pull more work from *up stream* if you are blocked
  • 72.
  • 73. 300 266 233 200 166 # pages 133 100 66 33 0 4 8 12 16 20 24 28 32 36 40 44 48 # hours
  • 75. J
  • 76. 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
  • 77. 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’?
  • 78. Thanks! jalewis@thoughtworks.com Bovon.org @boicy