lean software development

46
LEAN SOFTWARE DEVELOPMENT James Manning

Upload: napua

Post on 25-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lean Software Development

LEAN SOFTWARE DEVELOPMENT

James Manning

Page 2: Lean Software Development

Outline

Lean History of Lean Lean Manufacturing Lean Software Development Where to start

Page 3: Lean Software Development

What is Lean?

Process of eliminating waste from within a project, process, or company.

Page 4: Lean Software Development

History

Toyota Production System – 1948 - 1975 Developed by Taiichi Ohno, Shigeo

Shingo and Eiji Toyoda 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

Page 5: Lean Software Development

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

Page 6: Lean Software Development

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

Page 7: Lean Software Development

Mura

Unevenness – lacking flow Utilize resources, materials, and

machinery as efficiently as possible JIT Pull system

Piggly Wiggly (1916) JIT inventory

Page 8: Lean Software Development

Muda

Wastefulness Broad term Anything that Does not directly add

value to the end user Unneeded processes or steps Unneeded equipment Unneeded employees Ect.

Page 9: Lean Software Development

Lean Manufacturing

Seven Types of Waste Defects Over-production Transportation Waiting Inventory Motion Processing

Page 10: Lean Software Development

Implementing Lean Techniques

Page 11: Lean Software Development

Can this be applied to Software?

Lean Software Development Mary Poppendieck & Tom Poppendieck Term introduced in The Poppendiecks’ book

Titled Lean Software Development

Page 12: Lean Software Development

The Poppendieck’s

MS, MathematicsUniversity of Maryland

BS, MathematicsMarquette University

PhD, PhysicsUW – Madison

BS, PhysicsUW - Madison

Mary Poppendieck Tom Poppendieck

Page 13: Lean Software Development

Principles of Lean Software Development

Eliminate Waste Amplify Learning Delay Commitment Deliver Fast Empower the Team Build Integrity In See the Whole

Page 14: Lean Software Development

Eliminate Waste

Partially Done Work Extra Processes Extra Features Task Switching Waiting Motion Defects

Inventory Processing Overproduction Transportation Waiting Motion Defects

Lean Software Development

Lean Manufacturing

Page 15: Lean Software Development

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

Page 16: Lean Software Development

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

Page 17: Lean Software Development

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

Page 18: Lean Software Development

Extra Features

Page 19: Lean Software Development

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.

Page 20: Lean Software Development

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

Page 21: Lean Software Development

Waiting

Common delays: Email responses Climbing leadership chains Starting a project Excessive requirements documentation

Problems: Customer cannot visualize value early

Commitment – not waste

Page 22: Lean Software Development

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.

Page 23: Lean Software Development

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

Page 24: Lean Software Development

Eliminate Waste

Page 25: Lean Software Development

Principles of Lean Software Development

Eliminate Waste Amplify Learning Delay Commitment Deliver Fast Empower the Team Build Integrity In See the Whole

Page 26: Lean Software Development

Amplify Learning

4 Tools to Amplify Learning Feedback Iterations Synchronization Set Based Development

Page 27: Lean Software Development

Feedback

Most effective way of dealing with troubled software projects

Types of feedback: Run tests asap Check out ideas by writing code (spike

solution) Prototype instead of more requirements Create web front to legacy system to try it

out

Page 28: Lean Software Development

Iterations

Full Iteration: Designed Programmed Tested Integrated Delivered

Facts > Forecasts More feedback from customer

Page 29: Lean Software Development

Synchronization

Communication with other subsystems or devices

Develop interfaces first

Page 30: Lean Software Development

Set Based Development

Point-Based scheduling Set Based Scheduling

Page 31: Lean Software Development

Set-Based Development

Apply set based development to software Develop multiple options Communicate Constraints Let solutions emerge

Page 32: Lean Software Development

Principles of Lean Software Development

Eliminate Waste Amplify Learning Delay Commitment Deliver Fast Empower the Team Build Integrity In See the Whole

Page 33: Lean Software Development

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

Page 34: Lean Software Development

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

Page 35: Lean Software Development

Principles of Lean Software Development

Eliminate Waste Amplify Learning Delay Commitment Deliver Fast Empower the Team Build Integrity In See the Whole

Page 36: Lean Software Development

Deliver Fast

Just In Time Feedback Prototyping Create value as soon as possible

Page 37: Lean Software Development

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

Page 38: Lean Software Development

Build Integrity In

Pleases the user without user asking

Google

All parts of the system work together – smooth well functioning

Cash vs. Credit card

Perceived Integrity Conceptual Integrity

Page 39: Lean Software Development

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

Page 40: Lean Software Development

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

Page 41: Lean Software Development

Where to Start

Start as soon as possible Can be applied to a project or process in

progress

Page 42: Lean Software Development

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

Page 43: Lean Software Development

Conclusion

Lean Software Development Elimination of waste Improve:

Productivity Efficiency Bottom line

Page 44: Lean Software Development

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

Page 45: Lean Software Development

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.

Page 46: Lean Software Development

Thanks for you time

Questions?