1 / 46

Lean Software Development

Lean Software Development. James Manning. Outline. Lean History of Lean Lean Manufacturing Lean Software Development Where to start. What is Lean?. Process of eliminating waste from within a project, process, or company. History. Toyota Production System – 1948 - 1975

jimbo
Download Presentation

Lean Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lean Software Development James Manning

  2. Outline • Lean • History of Lean • Lean Manufacturing • Lean Software Development • Where to start

  3. What is Lean? • Process of eliminating waste from within a project, process, or company.

  4. History • Toyota Production System – 1948 - 1975 • Developed by TaiichiOhno, Shigeo Shingo and EijiToyoda • Toyoda – produce automobiles for the general public of Japan. • Very similar to Henry Ford – 30 years later • Utilized Ford and W Edwards Deming • JIT production

  5. History • Toyota became one of the top 10 companies in the world • 2007 - became the largest car manufacturer • TPS Focused on eliminating three kinds of waste • Muri • Mura • Muda

  6. Muri • Overburdened/Unreasonable/Absurdity • Employees • Safety, Ergonomic - standard of work • Searching for tools – having required tools • Waiting for help – empowering the team • Equipment • Overuse • Ford – Muri and not production line

  7. Mura • Unevenness – lacking flow • Utilize resources, materials, and machinery as efficiently as possible • JIT • Pull system • Piggly Wiggly (1916) • JIT inventory

  8. Muda • Wastefulness • Broad term • Anything that Does not directly add value to the end user • Unneeded processes or steps • Unneeded equipment • Unneeded employees • Ect.

  9. Lean Manufacturing • Seven Types of Waste • Defects • Over-production • Transportation • Waiting • Inventory • Motion • Processing

  10. Implementing Lean Techniques

  11. Can this be applied to Software? • Lean Software Development • Mary Poppendieck & Tom Poppendieck • Term introduced in The Poppendiecks’ book • Titled Lean Software Development

  12. The Poppendieck’s Mary Poppendieck Tom Poppendieck • MS, MathematicsUniversity of Maryland • BS, MathematicsMarquette University • PhD, PhysicsUW – Madison • BS, PhysicsUW - Madison

  13. Principles of Lean Software Development • Eliminate Waste • Amplify Learning • Delay Commitment • Deliver Fast • Empower the Team • Build Integrity In • See the Whole

  14. Eliminate Waste Lean Software Development Lean Manufacturing • Partially Done Work • Extra Processes • Extra Features • Task Switching • Waiting • Motion • Defects • Inventory • Processing • Overproduction • Transportation • Waiting • Motion • Defects

  15. Partially Done Work • Tendency to become obsolete • Gets in the way • No idea if it will even work with the system • Bottle Neck • Ties up resources • No value to customer • Disrupts Flow

  16. Extra Processes • Do all forms of required paperwork add value? • If required • Keep it short • Keep it high level • Do it off line • Good Test – Someone is eager to use for coding, testing, or writing manuals • Strive for most efficient, effective way of transmitting information

  17. Extra Features • Feature creep • Extra features “just in case” the customer will use them • Each extra feature need to be: • Tracked • Compiled • Integrated • Tested • Maintained • Every extra feature: • Increases complexity of code • Is a possible failure point • Could be obsolete before it is used

  18. Extra Features

  19. Extra Features • Frode L. Ødegår – List for quantifying value • What percentage of functionality in your products goes mostly unused? • What percentage of functionality serves mostly to sell the product? • How much of your development budget was expended on developing these features? • Quantify performance characteristics of your product and relate these numbers to impact on the customer's performance. • Rank candidate product features and design ideas by their quantifiable impact on customer value.

  20. Task Switching • Assigning multiple people to multiple projects • A significant amount of time is wasted in the transition of tasks • More teams and projects = more interrupts • More task switching • Fastest to finish multiple projects • Do them one at a time

  21. Waiting • Common delays: • Email responses • Climbing leadership chains • Starting a project • Excessive requirements documentation • Problems: • Customer cannot visualize value early • Commitment – not waste

  22. Motion • How readily available are others to answer developer questions • Motion to walk to answer get a question answered • Lean development offices can help eliminate this waste.

  23. Defects • A defective product has little to no value to an end user • AmtWaste = (DefectImpact)(TimeUndetected) • (Large Defect)(3Hours) < (Small Defect)(3Wks) • Ways of eliminating waste: • Find defects quick • Test immediately • Integrate often • Release to production soon

  24. Eliminate Waste

  25. Principles of Lean Software Development • Eliminate Waste • Amplify Learning • Delay Commitment • Deliver Fast • Empower the Team • Build Integrity In • See the Whole

  26. Amplify Learning • 4 Tools to Amplify Learning • Feedback • Iterations • Synchronization • Set Based Development

  27. Feedback • Most effective way of dealing with troubled software projects • Types of feedback: • Run tests asap • Check out ideas by writing code (spike solution) • Prototypeinstead of more requirements • Create web front to legacy system to try it out

  28. Iterations • Full Iteration: • Designed • Programmed • Tested • Integrated • Delivered • Facts > Forecasts • More feedback from customer

  29. Synchronization • Communication with other subsystems or devices • Develop interfaces first

  30. Set Based Development Point-Based scheduling Set Based Scheduling

  31. Set-Based Development • Apply set based development to software • Develop multiple options • Communicate Constraints • Let solutions emerge

  32. Principles of Lean Software Development • Eliminate Waste • Amplify Learning • Delay Commitment • Deliver Fast • Empower the Team • Build Integrity In • See the Whole

  33. Delay Commitment • Delay = waste? • Procrastinating = waste? • Idea: • Wait until the last moment to make a critical decision • Make decision on fact rather than forecast • Large commitment not left to chance • Not always going to be easy – Customer generally wants commitment

  34. Delay Commitment • Methods of delaying commitment • Share partially complete design information. • Organize for direct, worker-to-worker collaboration. • Develop a sense of when decisions must be made. • Develop a sense of how to absorb changes • Avoid Repetition • Separate Concerns • Encapsulate Variation • Defer Implementation of Future Capabilities • Commit to Refactoring • Use Automates Test Suites

  35. Principles of Lean Software Development • Eliminate Waste • Amplify Learning • Delay Commitment • Deliver Fast • Empower the Team • Build Integrity In • See the Whole

  36. Deliver Fast • Just In Time • Feedback • Prototyping • Create value as soon as possible

  37. Empower the Team • Eliminates waste from: • Waiting • Climbing management chains • Firefighter • Prepared • No time to ask remote commanders • Anti-pattern • Empowering employees who are not trained • Employee being blamed for when things go wrong

  38. Build Integrity In Perceived Integrity Conceptual Integrity • Pleases the user without user asking • Google • All parts of the system work together – smooth well functioning • Cash vs. Credit card

  39. Build Integrity in • Boeing 777 “Working Together” Program • Fuel tank out of reach of fuel trucks caught early • Methods: • Test early • Test often • Test exhaustively • Automated tests delivered

  40. See the Whole • Look at the whole process • Mary Poppendieck • “Lean thinking suggests that optimizing individual parts almost always leads to sub-optimized overall system” • 80% of defects – how the system is developed

  41. Where to Start • Start as soon as possible • Can be applied to a project or process in progress

  42. Road Map • Marry Poppendieck • Begin Where you are • Find your biggest constraint • Envision your biggest threat • Evaluate your culture • Train • Solve the Biggest Problem • Remove Accommodations • Measure • Implement • Repeat

  43. Conclusion • Lean Software Development • Elimination of waste • Improve: • Productivity • Efficiency • Bottom line

  44. References • Abilla, P., & Poppendieck, M. (2007, June 9). Lean for Software. shmula. Retrieved March 28, 2011, from http://www.shmula.com/lean-for-software/401/ • Ladas, C. (2009, June 15). Introduction to Lean Software Development. Shaping Software . Retrieved March 28, 2011, from http://shapingsoftware.com/2009/06/15/introduction-to-lean-software-development/ • Fiore, C. (2005). Accelerated product development: combining lean and Six sigma for peak performance. New York, NY: Productivity Press. • Layton, R. (2010, August 12). 80-20 Rule: 80 percent of Product Features Are Never Used. Klean. Retrieved March 28, 2011, from http://www.klean.dk/weblog/80-20-rule-80-percent-of-product-features-are-never-used • Poppendieck, M. (2003, April, 25). Lean Software Development. LeanEssays. Retrieved March 28, 2011, from http://www.leanessays.com/2003/04/lean-software-development.html

  45. References • Poppendieck, M. (2001, May 1). Lean Programming. LeanEssays. Retrieved March 28, 2011, from http://www.leanessays.com/2010/11/lean-programming.html • Poppendieck, M. (2004, June 24). An Introduction to Lean Software Development. LeanEssays. Retrieved March 28, 2011, from http://www.leanessays.com/2004/06/introduction-to-lean-software.html • Principles of Lean. lean.org - Lean Enterprise Institute| Lean Production | Lean Manufacturing | LEI | Lean Services |. Retrieved March 28, 2011, from http://www.lean.org/WhatsLean/Principles.cfm • Shalloway, A. (2007, August 8). Lean Anti-Patterns and What to Do About Them. Agile Journal. Retrieved March 28, 2011, from http://www.agilejournal.com/component/content/553?task=view • Ødegår, F. (2007, December 30). Lean Execution: Six Questions for Software Executives. Lean Software Institute. Retrieved March 28, 2011, from www.leansoftwareinstitute.com/wp-content/uploads/2007/08/Lean-Execution-Six-Questions-for-Software-Executives.pdf • Poppendieck, Mary , and Tom Poppendieck. Lean software development: an agile toolkit. Reading, Massachusetts: Addison-Wesley, 2003. Print.

  46. Thanks for you time • Questions?

More Related