Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lean Software Development Nathan Decker February 4, 2010.

Similar presentations


Presentation on theme: "Lean Software Development Nathan Decker February 4, 2010."— 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 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


Download ppt "Lean Software Development Nathan Decker February 4, 2010."

Similar presentations


Ads by Google