1 / 28

Lean Software Development

Lean Software Development. Nathan Decker February 4, 2010. Overview . What is lean development? The basics of lean development Origins of lean software development Principles of lean software development Recap References. What is lean development?.

kishi
Télécharger la présentation

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 Nathan Decker February 4, 2010

  2. Overview • What is lean development? • The basics of lean development • Origins of lean software development • Principles of lean software development • Recap • References

  3. What is lean development? • Implementation of lean manufacturing principles into a software development model • Goal : Reduce the waste in a system and produce a higher value for the final customer

  4. What is lean development? • Similarities to Agile Development • Agile Manifesto refresher: Developers shall value • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over customer negotiation • Responding to change over following a plan • Based on, yet a basis for Agile projects

  5. Basics of Lean Development • Muda • Any activity that uses of resources, but adds no value • Examples of waste • Partially done work • Extra processes • Defects

  6. Basics of Lean Development • Value • What the customer wants the product to do • 45% of all software features go unused • What do customers really need?

  7. Basics of Lean Development • Value Stream • All actions required to bring project from creation to completion • Types of actions • Add value • No value added, but unavoidable • No value added, avoidable

  8. Basics of Lean Development • Flow • Product is in motion at all time • Compare this with a classic batch + queue methodology • Which is more efficient?

  9. Basics of Lean Development • Pull • No product is made until the customer requests it • Requires a process that flows • Pros: • Correct number of items every time • Easier to customize products • Cons: • No inventory to draw from

  10. Basics of Lean Development • Pursuit of perfection • After a project flows… keep improving it • Long-term improvement and short-term improvement • Luckily, perfection is not a reachable goal!

  11. Origins of Lean Software Development • Lean development at Toyota • Original author : Taiichi Ohno • Inventor of Just-In-Time manufacturing • “Costs do not exist to be calculated. Costs exist to be reduced.” • Taiichi Ohno • Implementation at Toyota • Lean vs Batch and Queue

  12. Origins of Lean Software Development • Adapted by Mary and Tom Poppendieck • Lean Software Development: An Agile Toolkit • http://www.poppendieck.com

  13. Lean Software Development • Lean applied to software • Iterative cycles • Feedback vs Forecast • Essentially, an implementation of the Agile Manifesto • Based off and a basis

  14. Principle 1: Eliminate Waste • Remove all wastes that add no value to project • Three types of waste • Waste in code development • Waste in project management • Waste in workforce potential

  15. Wastes in Code Development • Partially completed work • Can become outdated and unusable • Solution: Iterative cycle with modular code • Defects • Correction and retesting • Solution: Up-to-date test suite, customer feedback

  16. Wastes in Project Management • Extra processes • Wasteful/ Unnecessary documentation • Solution: Documentation review • Code Handoffs • Loss of knowledge • Solution: Don’t handoff code • Extra Functions • The customer doesn’t want or need a feature • Solution: Continuous interaction with customer

  17. Wastes in Workforce Potential • Task Switching • The danger of multi-tasking • Solution: Focus on a task each release • Waiting for instructions or information • Developers are too expensive to be sitting around! • Allow developers to make decisions, access to information

  18. Principle 2: Amplify Learning • Learning is not compulsory... neither is survival. • Deming • Full knowledge is impossible, need to learn as project is developed • The customer should be learning too!

  19. Principle 2: Amplify Learning • Use the scientific method • Create hypothesis • Conduct rapid tests of possible solutions • Compare results • Implement the best solution • Also used: Six Sigma • Lean Six Sigma / Six Sigma with lean

  20. Principle 3: Delay Commitment • Decisions are often made on incomplete or incorrect information • Delay until the last responsible moment • Benefits: • More knowledge for decision • Leave options open

  21. Principle 4: Empower the Team • Make decisions as “low” as possible • Shift from complete documentation to goals and guidelines • Developers closest to code know the problem best • Developers can get feedback for personal improvement • Developers must be experienced in domain • “The best executive is one who has sense enough to pick good people to do what he wants done, and self-restraint enough to keep from meddling with them while they do it.” • Theodore Roosevelt

  22. Principle 5: Deliver Fast • Customers change their mind. • Solution: Deliver so fast, they don’t have time to! • Short release cycles • About two weeks • Requirements: • Don’t overload developers with requests • No partially completed work

  23. Principle 5: Deliver Fast • Doesn’t fast delivery lead to hasty, buggy code? • Don’t confuse speed with rushing to get something done on time! • Speed vs Schedule • Flowing processes • Development • Knowledge gathering

  24. Principle 6: Build Integrity In • Perceived Integrity • Does exactly what the customer wants, even if they don’t know it yet • Again, continual interaction with the customer • Conceptual Integrity • The product works smoothly and functions well

  25. Principle 7: See the whole • Optimize the entire product, not just parts • Short delivery cycles can lead to optimized parts, sub optimized whole • Don’t worry about scope! • By focusing on what customers want, scope will handle itself • Don’t have customer overestimate what the product will do

  26. Recap • Lean development is focused on removing waste from a system and improving value for the customer • Principles of Lean software development • Eliminate Waste • Amplify Learning • Delay Commitment • Empower the Team • Deliver Fast • Build Integrity in • See the whole

  27. References • [1] Poppendieck.llc  Retrieved from http://www.poppendieck.com/ [2] Womack, J.P., & Jones, D.T. (2003). Lean thinking: banish waste and create wealth in your corporation, revised and updated. New York: Free Press.[3] Womack, James, & Jones, Daniel. (2005). Lean solutions: how companies and customers can create value and wealth together. New York: Free Press. [4] Ødegård, F. (2007). Lean execution: six questions for software executives. Retrieved from http://www.leansoftwareinstitute.com/Lean%20Execution%20-%20Six%20Questions%20for%20Software%20Executives.pdf[5] Middleton, Peter, & Sutton, James. (2005). Lean software strategies. Productivity Pr. [6] Poppendieck, Mary, Poppendieck, Tom. (2002). Agile software development ecosystems. Addison-Wesley Professional.

  28. References • [7] Poppendieck, Mary. (2003, Fall). Lean software development. C++ Magazine, methodology issue, Retrieved from http://www.poppendieck.com/pdfs/Lean_Software_Development.pdf [8] Poppendieck, Mary. (2007, May). The Challenges of bringing lean to software development. Retrieved from http://www.poppendieck.com/pdfs/The%20Truck%20Driving%20Problem.pdf [9] Poppendieck, Mary. (2001, May). Lean programming. Software Development Magazine, Retrieved from http://www.poppendieck.com/lean.htm [10] Manifesto for agile software development. (2001). Retrieved from http://agilemanifesto.org/ [11] Poppendieck, Mary. (2002). Principles of lean thinking. Retrieved from http://www.poppendieck.com/papers/LeanThinking.pdf[12] Ophir, Eyal, Nass, Clifford, & Wagner, Anthony D. (2009). Cognitive control in media multitaskers. Retrieved from http://www.pnas.org/content/106/37/15583.abstract  

More Related