Download presentation
Presentation is loading. Please wait.
Published byEustace Nash Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.