Your SlideShare is downloading. ×
0
lsoftware development                                   e a n           Lean Software Development                       Di...
Two Kinds of     Software DevelopmentProcess Support                          Product DevelopmentThe Application Developme...
Lean for DevelopmentOld-Fashioned Chocolate Layer Cake     “We baked 130 cakes in search of the perfect wedge.”    What ab...
Software Development    1.       Build the Right Thing    2.       Build the Thing Right    3.       Deliver (& Learn) Fas...
Build the Right ThingThere is nothing so useless as doing efficiently thatwhich should not be done at all. – Peter Drucker...
What is Design Thinking?  Diverse Design Team      Framing                       Observe the Situation                   ...
Waste 1: Extra FeaturesFeatures / Functions Used in a Typical System                                  Cost of Complexity  ...
Waste 2: Handovers                                           A handover occurs whenever we separate:*                     ...
The Lean StartupAgile Vs. Lean StartupAdapted from similarchart posted by Joshua                  Agile                   ...
Software Development     1.       Build the Right Thing     2.       Build the Thing Right     3.       Deliver (& Learn) ...
Build Quality In Every software development process ever invented has had the same primary goal – find and fix defects as ...
Waste 3: Defects                                               The Longer Defects are Undetected,                         ...
Waste 4: Technical DebtTechnical Debt: Anything that makes code difficult to change   Sloppy Code      Code reviews  sta...
A Defect Injection Process                               Specifications             Tests                                 ...
A Defect Prevention Process                               Specifications             Tests                                ...
Discipline on Steroids                                                                                                    ...
Software Development     1.       Build the Right Thing     2.       Build the Thing Right     3.       Deliver (& Learn) ...
The Fastest Learner Wins                        Model                           Build                  Learn              ...
Waste 5: Work in Progress                                                                               Work in Progress h...
Waste 6: Task Switching20    October 11   Copyright©2011 Poppendieck.LLC   l e a n
Waste 7: Delays21   October 11   Copyright©2011 Poppendieck.LLC   l e a n
Model          Build                     Release Cycle                      6 Months                                     ...
Model       Build            Release Cycle              Quarterly                                 Learn      MeasureHarden...
Model       Build              Release Cycle                Monthly                                Learn      MeasureNow y...
Model       Build      Release Cycle Weekly/Daily/Continuous                                      Learn      MeasureKanban...
lsoftware development                                   e a n                       Thank You!             More Informatio...
Upcoming SlideShare
Loading in...5
×

"Lean software development: discovering waste" by Mary Poppendieck

10,539

Published on

Mary Poppendieck's presentation at the 1st European Lean IT Summit held in Paris in October 2011

Published in: Technology, Business

Transcript of ""Lean software development: discovering waste" by Mary Poppendieck"

  1. 1. lsoftware development e a n Lean Software Development Discovering Wastemary@poppendieck.com Mary Poppendieck www.poppendieck.com
  2. 2. Two Kinds of Software DevelopmentProcess Support Product DevelopmentThe Application Development Software intensive products. portion of IT organizations.If you divide IT into Operations and Application Development THEN Almost never referred to as IT“Standard” Lean Tools are by the people who do it. appropriate for IT Operations Development generally doesAvoid “Standard” Lean Tools for not report to a CIO. Application Development l e a n Accounts for a large and growing majority of2 October 11 Copyright©2011 Poppendieck.LLC software developed today
  3. 3. Lean for DevelopmentOld-Fashioned Chocolate Layer Cake “We baked 130 cakes in search of the perfect wedge.” What about? Why not?  Standard work  Learning cycles  Do it right the first time  Do it wrong lots of times  Variation  Manage flow, not projects  5 S’s  Simplicity l e a n Operations Toolkit Development Toolkit3 October 11 Copyright©2011 Poppendieck.LLC
  4. 4. Software Development 1. Build the Right Thing 2. Build the Thing Right 3. Deliver (& Learn) Fast4 October 11 Copyright©2011 Poppendieck.LLC l e a n
  5. 5. Build the Right ThingThere is nothing so useless as doing efficiently thatwhich should not be done at all. – Peter Drucker Most product failures Think Like a Customer are caused by a lack of Customers. “Don’t to what customers say they want, understand their problems and solve them.”– Per Haug Kogstad, l e a n founder, Tandberg (now Cisco)5 October 11 Copyright©2011 Poppendieck.LLC
  6. 6. What is Design Thinking? Diverse Design Team Framing  Observe the Situation  Conceptualize the ProblemReframe* Ideation  Obtain Customer Insights Iterate  Visualize/Prototype Ideas Experimentation l e a n  Try Tentative Solutions*Pivot  Refine Mental Models 6 October 11 Copyright©2011 Poppendieck.LLC
  7. 7. Waste 1: Extra FeaturesFeatures / Functions Used in a Typical System Cost of Complexity Often / Always Rarely / Never Used: 20% Used: 64% Sometimes Rarely 19% 16% Cost Often 13% Always 7% Never 45% Standish Group Study Reported at XP2002 by Jim Johnson, Chairman Time l e a n The Biggest opportunity for increasing Software Development Productivity: Write Less Code! 7 October 11 Copyright©2011 Poppendieck.LLC
  8. 8. Waste 2: Handovers A handover occurs whenever we separate:*  Responsibility − What to do  Knowledge − How to do it  Action − Actually doing it  Feedback − Learning from results*Alan Ward: Lean Product and Process Development Not this: But this: P R I O R I T I Z E l e a n D ! 8 October 11 Copyright©2011 Poppendieck.LLC
  9. 9. The Lean StartupAgile Vs. Lean StartupAdapted from similarchart posted by Joshua Agile Lean StartupKerievsky, IndustrialLogic Blog† August, 2011 Product Roadmap Business Model Canvas Product Vision Product Market Fit Release Plan Minimal Viable Product Iteration Build-Measure-Learn Loop Iteration Review Persevere or Pivot Backlog “To Learn” List User Story Hypothesis Continuous Integration Continuous Deployment Definition of Done Validated Learning†https://elearning.industrial Acceptance Test Split Testlogic.com/gh/submit?Action=PageAction&album=blog200 Customer Feedback Cohort-based Metrics l e a n9&path=blog2009/2011/agileVsLeanStartup&devLangua On-Site Customer “Get Out Of The Building”ge=Java Product Owner Entrepreneur 9 October 11 Copyright©2011 Poppendieck.LLC
  10. 10. Software Development 1. Build the Right Thing 2. Build the Thing Right 3. Deliver (& Learn) Fast10 October 11 Copyright©2011 Poppendieck.LLC l e a n
  11. 11. Build Quality In Every software development process ever invented has had the same primary goal – find and fix defects as early in the development process as possible. If you are finding defects at the end of the development process – your process is not working for you. How good are you?When in your release cycle do you try to freeze code and test the system?What percent of the release cycle remains for this “hardening”? Top Companies: <10% Typical: 30% Sometimes: 50%11 October 11 Release Cycle Copyright©2011 Poppendieck.LLC l e a n
  12. 12. Waste 3: Defects The Longer Defects are Undetected, l e a n the Harder They are to Find.12 October 11 Copyright©2011 Poppendieck.LLC
  13. 13. Waste 4: Technical DebtTechnical Debt: Anything that makes code difficult to change  Sloppy Code Code reviews  standards, quality, knowledge transfer.  No Test Harness (=Poka Yoke) Code without a test harness is Legacy Code.  Dependencies A divisible architecture is fundamental.  Unsynchronized Code Branches The longer two code branches l e a n remain apart, the more difficult they are to merge together. 13 October 11 Copyright©2011 Poppendieck.LLC
  14. 14. A Defect Injection Process Specifications Tests Code l e a n Match?14 October 11 Copyright©2011 Poppendieck.LLC
  15. 15. A Defect Prevention Process Specifications Tests l e a n Code15 October 11 Copyright©2011 Poppendieck.LLC
  16. 16. Discipline on Steroids Environment VERSION CONTROL & Application Source Code & Tests Configuration Scripts Self-Service UAT Stage Deployments Configure Environment Testers Deploy Binaries Smoke Test Manual TestingDevelop Stage Commit Stage Acceptance Stage Capacity Stage Design Compile Configure Environment Configure Environment Code & Script Commit Tests Deploy Binaries Testers Deploy Binaries Unit Test Assembly Smoke Test Smoke Test Refactor Code Analysis Run Acceptance Tests Run Capacity Tests BINARIS Metadata Metadata BINARIS Production Reports Metadata Reports BINARIS Metadata Reports Configure Environment Reports Operations Deploy Binaries Push-Button Smoke Test Releases16 October 11 Copyright©2011 Poppendieck.LLC ARTIFACT REPOSITORY l e a n
  17. 17. Software Development 1. Build the Right Thing 2. Build the Thing Right 3. Deliver (& Learn) Fast17 October 11 Copyright©2011 Poppendieck.LLC l e a n
  18. 18. The Fastest Learner Wins Model Build Learn Measure18 October 11 Copyright©2011 Poppendieck.LLC l e a n
  19. 19. Waste 5: Work in Progress Work in Progress hides problems. Lower the Work in Progress gradually; Expose the biggest problems first. Shrink the problems one at a Work in Progress RISK: Pro Building the Defects! Not time, biggest problem first. Technical found until Wrong Thing. Risk: Debt: Change Pro Building the is too integration… Competition Wrong Thing expensive Too Introduces a better product. Poor Slow l e a n UI19 October 11 Copyright©2011 Poppendieck.LLC
  20. 20. Waste 6: Task Switching20 October 11 Copyright©2011 Poppendieck.LLC l e a n
  21. 21. Waste 7: Delays21 October 11 Copyright©2011 Poppendieck.LLC l e a n
  22. 22. Model Build Release Cycle 6 Months Learn Measure Quick & Dirty Value Stream Map: Request Request Select Develop Features Features Features Features Harden UAT Release Cycle Release Cycle Release Cycle Value-Added Time Total Cycle Time Time Total Cycle Start Average Start End Business Model:  Software installed at customer site l e a n  Support each release  Avoid releases22 October 11 Copyright©2011 Poppendieck.LLC
  23. 23. Model Build Release Cycle Quarterly Learn MeasureHardening must be  2 weeks.Typically: 2-4 week iterationsCode from each iteration goes to integration testingAutomated integration testing becomes necessary Business issues: How to price and sell releases? Which releases to support? Supporting multiple branches l e a n can create a support nightmare Public vs. Private releases?23 October 11 Copyright©2011 Poppendieck.LLC
  24. 24. Model Build Release Cycle Monthly Learn MeasureNow you need:Cross Functional TeamVisualizationShort Daily MeetingsSBE/TDD working!Hardening  3 days Business Environment Works best for:  Software as a Service (SaaS)24 October 11 Copyright©2011 Poppendieck.LLC l e a n  Internal Software
  25. 25. Model Build Release Cycle Weekly/Daily/Continuous Learn MeasureKanban works well The team is everyone.Iterations become irrelevantHigh discipline is fundamentalEstimating is largely unnecessaryRapid cycles of learning drive portfolio decisions DevOps: Test & deployment automation is essential l e a n Business Issues: Increasingly common in startups25 October 11 Copyright©2011 Poppendieck.LLC
  26. 26. lsoftware development e a n Thank You! More Information: www.poppendieck.commary@poppendieck.com Mary Poppendieck www.poppendieck.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×