waste and trashing

38
l l e a n ft d l t software development L S ft D l t Lean Software Development Waste and Thrashing www.poppendieck.com Mary Poppendieck [email protected] [email protected] Waste and Thrashing

Upload: agile-tour-2009-quebec

Post on 26-May-2015

2.432 views

Category:

Technology


4 download

DESCRIPTION

Présentation de Mary Poppendieck lors de l'Agile Tour 2009 Québec.

TRANSCRIPT

Page 1: Waste and Trashing

ll e a nft d l tsoftware development

L S ft D l tLean Software DevelopmentWaste and Thrashing

www.poppendieck.comMary [email protected]@poppendieck.com

Waste and Thrashing

Page 2: Waste and Trashing

What is Waste?

Waste isWaste isWaste is…Waste is…Anything that depletes resources Anything that depletes resources of time, effort, space, or moneyof time, effort, space, or moneyof time, effort, space, or money of time, effort, space, or money without adding customer value.without adding customer value.

Value isValue isValue is…Value is…Seen through the eyes of those Seen through the eyes of those who pay for, use, support, or who pay for, use, support, or p y f , , pp ,p y f , , pp ,derive value from our systems.derive value from our systems.

l e a nl e a nl e a nOctober 092 Copyright©2009 Poppendieck.LLC

Put on Customer GlassesPut on Customer Glasses

Page 3: Waste and Trashing

What is Waste?

Airline Statistics:Airline Statistics:Available Seat Miles (ASM)A Capacity MeasurementA Capacity Measurement

Revenue Seat Miles (RSM)A Production Measurement

Put yourself in the shoes Load Factor = RSM/ASMA Utilization Measurementy

of an airline executive:Are empty seats waste?

Re-phrasing the question:Will a higher load factor

l e a nl e a nl e a nWhat do you think?g f

increase profits?October 093 Copyright©2009 Poppendieck.LLC

Page 4: Waste and Trashing

Case Studyy

By the Numbers*Customers Love Southwest * Sources:F i i

Most PunctualLost the Least BagsHad the Fewest Complaints

Excellent Customer ServiceReliable PerformancePoint-to-Point Routing

FAA StatisticsSEC FilingsFortune Rating

Had the Fewest ComplaintsRated “Most Admired” US Airline35 Consecutive Years of Profitability

Point to Point RoutingConsistent Low FaresNo “Nuisance Charges”L t f Fli ht O ti

Flights  On‐TimePerformance LoadFactors Cancelled Diverted

Carrier 2007 2007 2006 2007 2006 2005 2004 2007 2007

Operates at the Lowest Load FactorLots of Flight Options

Carrier   2007 2007 2006 2007 2006 2005 2004 2007 2007

WN ‐ Southwest Airlines   1,164,906 81.72% 84.66% 72.60% 73.10% 70.70% 69.50% 0.43% 0.12%

DL ‐Delta Air Lines  568,862 75.65% 75.72% 80.60% 78.50% 76.50% 74.70% 1.18% 0.21%

CO ‐ Continental Airlines   411,105 72.95% 76.54% 81.40% 80.70% 78.90% 76.90% 0.92% 0.35%

NW ‐ Northwest Airlines   480,382 71.23% 79.02% 83.90% 84.00% 81.50% 79.20% 2.04% 0.13%

l e a nl e a nl e a nUA ‐ United Airlines   594,488 69.90% 74.79% 82.70% 82.10% 81.50% 79.30% 2.28% 0.10%

US ‐ US Airways   402,568 68.70% 78.51% 75.30% 78.30% 75.50% 75.10% 1.65% 0.08%

AA ‐ American Airlines    792,404 68.34% 78.33% 81.50% 80.00% 78.60% 74.80% 2.73% 0.09%

October 094 Copyright©2009 Poppendieck.LLC

Page 5: Waste and Trashing

Seeing WastegThe 7 Wastes of The 7 Wastes of

S ft D l pm tS ft D l pm tThe Seven Wastes of Manufacturing The Seven Wastes of Manufacturing

T ii hi OhT ii hi Oh

1. Extra FeaturesSoftware DevelopmentSoftware Development-- Taiichi OhnoTaiichi Ohno

1. Overproduction2. Handovers3. Failure Demand

2. Motion3. Waiting

4. Technical Debt5 Task Switching

g4. Transportation5 Work In Process 5. Task Switching

6. Delays5. Work In Process 6. Extra Processing

l e a nl e a nl e a n7. DefectsOctober 095 Copyright©2009 Poppendieck.LLC

7. Defects

Page 6: Waste and Trashing

Extra Features

Cost of ComplexityFeatures / Functions Used in a Typical System p yRarely / NeverRarely / Never

Used: 64%Used: 64%Often / AlwaysOften / Always

Used: 20%Used: 20%

Cos

t

Often 13%

Sometimes16%

Rarely 19%

Always 7%

Never 45%

TimeStandish Group Study Reported at XP2002 by Jim Johnson, Chairman

Th Bi t t it f i i S ftl e a nl e a nl e a nOctober 096 Copyright©2009 Poppendieck.LLC

The Biggest opportunity for increasing Software Development Productivity: Write Less Code!

Page 7: Waste and Trashing

Handovers

A handover occurs whenever we separate:*p Responsibility Knowledge

− What to do− How to do it

Action Feedback

*Allen Ward “Lean Product and Process Development”

− Actually doing it− Learning from results

Allen Ward Lean Product and Process Development

Software Development

QA and IntegrationWholeWhole TeamTeam

O ll

p

l e a nl e a nl e a nOctober 097 Copyright©2009 Poppendieck.LLC

Overall System Operations

and Support

Page 8: Waste and Trashing

Failure Demand

Value DemandValue DemandDemand for work that adds value

from a customer perspectivep pThe Goal: Delight Customers by

Responding to Value DemandFailure DemandDemand on the resources

d b f ilcaused by your failuresEg. Support Calls

The Goal: Eliminate Failure Demandl e a nl e a nl e a nThe Goal: Eliminate Failure DemandMeanwhile, respond as fast as possible

October 098 Copyright©2009 Poppendieck.LLC

Page 9: Waste and Trashing

Technical Debt

Anything that makes code difficult to changeAnything that makes code difficult to change Sloppy / Un-testable Code

Code without a test harness is Legacy Code.

y g ff gy g ff g

DependenciesHigh cohesion and low couplingare essential for testable code.

Unsynchronized Code BranchesThe longer two code branches

h d ff ll e a nl e a nl e a nOctober 099 Copyright©2009 Poppendieck.LLC

remain apart, the more difficult they are to merge together.

Page 10: Waste and Trashing

Task Switchingg10

Task A

Task C

Task A

Task B

Wasted Cost

Month 1 Month 2 Month 3 Month 4

Wasted Cost

Wasted Value

Value

l e a nl e a nl e a nTime

Page 11: Waste and Trashing

Delaysy

l e a nl e a nl e a nOctober 0911 Copyright©2009 Poppendieck.LLC

Page 12: Waste and Trashing

Defectsf

l e a nl e a nl e a nOctober 0912 Copyright©2009 Poppendieck.LLC

Page 13: Waste and Trashing

Quality by ConstructionQ y y

A Quality Process Builds Quality IN.A Quality Process Builds Quality IN.Q y Q yQ y Q yRather than trying to test quality in later.If you find defects at the end of your process…Y i d f i !Your process is defective!

Quality by ConstructionQuality by ConstructionCode that reveals its intentionsDesign/code reviews I di t t t d t ti Immediate, automated testingSTOPSTOP if the tests don’t pass!Continuous, nested integration

l e a nl e a n, g

Escaped defect analysis & feedbackOctober 0913 Copyright©2009 Poppendieck.LLC

Page 14: Waste and Trashing

Dijkstra’s Challangej g

If you want more effective programmers, you will discover that they should not waste their time debugging – they should not introduce bugs to start with.

How good are you?When in your release cycle do you try to freeze code and test the system? What percent of the release cycle remains for this “hardening”?What percent of the release cycle remains for this hardening ?

Typical: 30%

Top Companies: <10%

Sometimes: 50%

l e a nl e a n10/26/200914 Copyright©2009 Poppendieck.LLC

Release Cycle

Page 15: Waste and Trashing

Buried in Work?

You are not alone!G d i ti th t h l d t f th iGood organizations that have solved most of their problems always seem to have one problem left:

l e a nl e a nl e a nThrashingThrashingOctober 0915 Copyright©2007 Poppendieck.LLC

Page 16: Waste and Trashing

What is Thrashing?g

Thrashing:Thrashing:

A degenerate situation on a computer where increasing resources are used to do a decreasing amount of workresources are used to do a decreasing amount of work.

Well known in networkingd iand server operations.

One of the most widely known and studied instances of Queuing Theory.

l e a nl e a nl e a nOctober 0916 Copyright©2007 Poppendieck.LLCQueuing Theory 101

Page 17: Waste and Trashing

What are you doing about it?y g

Ignore it and hope it will go away?Insanity: Continuing to do the same thing

d d ff ll e a nl e a nl e a nand expecting different results.

October 0917 Copyright©2007 Poppendieck.LLC

Page 18: Waste and Trashing

What Causes Thrashing?What Causes Thrashing?gg

UnevenessUneveness

Time Through the System =

Little’s LawTime Through the System

Number of Things in ProcessAverage Completion Rate

l e a nl e a nl e a nOctober 0918 Copyright©2007 Poppendieck.LLC

Page 19: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In ProcessMinimize the Number of Things In Process

l e a nl e a nl e a nOctober 0919 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 20: Waste and Trashing

Minimize the Number of Things in ProcessThings-in-Process

We have far too many things to do!We have far too many things to do!We have far too many things to do!We have far too many things to do!How long are your lists of things to get done?

How many things are in each list?How many things are in each list?How long would it take to finish them?

How many will never get done?How many will never get done?Why are they in your queue?

Queues are buffers between departments that Queues are buffers between departments that keep people from having to talk to each other!keep people from having to talk to each other!l e a nl e a nl e a nkeep people from having to talk to each other!keep people from having to talk to each other!

October 0920 Copyright©2007 Poppendieck.LLC

Page 21: Waste and Trashing

What Causes Thrashing?What Causes Thrashing?gg

OverloadOverloadCycle Time as a Function of Utilization and Batch Size*

40

45

25

30

35

e (h

ours

)

Small Batches

Medium BatchesLarge Batches

10

15

20

Cyc

le T

ime

0

5

10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

l e a nl e a nl e a nOctober 0921 Copyright©2007 Poppendieck.LLC

ThrashingThrashingHigh PerformanceHigh Performance*This assumes batch size is proportional to variability.

Page 22: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In ProcessMinimize the Size of Things In ProcessMinimize the Size of Things In Process

l e a nl e a nl e a nOctober 0922 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 23: Waste and Trashing

Minimize the Size of Things in ProcessThings-in-Process

ChurnChurnChurnChurn Do requirements keep changing?

You are specifying too early. Do you have test-and-fix cycles?y y

You are testing too late.

Why do early specification and late Why do early specification and late

l e a nl e a nl e a ny y p fy y p f

testing seem like such a good idea?testing seem like such a good idea?October 0923 Copyright©2007 Poppendieck.LLC

Page 24: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In Process

Level the Workload Manage Workflows not SchedulesManage Workflows not Schedules Manage Workflows, not SchedulesManage Workflows, not Schedules

l e a nl e a nl e a nOctober 0924 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 25: Waste and Trashing

Empire State Buildingp g

September 22 1929 One Year Earlier:September 22, 1929Demolition started January 22, 1930Excavation startedExcavation startedMarch 17, 1930Construction started November 13 1930November 13, 1930Exterior completed May 1, 1931Building openedBuilding openedExactly on time 18% under budget

l e a nl e a nl e a n10/26/200925 Copyright©2009 Poppendieck.LLC

How did they do it? The key: Focus on FLOW.

Page 26: Waste and Trashing

Steel Schedule

We thought of the work as if itWe thought of the work as if it were a band marching through the building and out the top.

l e a nl e a nl e a n10/26/200926 Copyright©2009 Poppendieck.LLC

From: “Building the Empire State”Builders Notebook: Edited by Carol Willis

Page 27: Waste and Trashing

The Four Pacemakers

1 Structural Steel Construction1. Structural Steel Construction Completed September 22, 12 days early

2 Concrete Floor Construction2. Concrete Floor Construction Completed October 22, 6 days early

3 Exterior Metal Trim &Windows3. Exterior Metal Trim &Windows Completed October 17, 35 days early

4 E t i Li t4. Exterior Limestone Completed November 13, 17 days early

l e a nl e a nl e a n10/26/200927 Copyright©2009 Poppendieck.LLC

From: “Building the Empire State”Builders Notebook: Edited by Carol Willis

Page 28: Waste and Trashing

Key Success Factorsy

1. Teamwork of owner, architect, and builder Eliminated design loops by consulting experts early.

2. Deeply Experienced Builders Fixed Price Contract!

3. Focus on the key constraint: Material Flow 500 trucks a day – no storage on site

4. Decoupling4. Decoupling The pacemakers (and other systems) were designeddesigned to be independent

5. Cash Flow Thinking E d f d l t $10 000 ($120 000 t d ) Every day of delay cost $10,000 ($120,000 today).

6. Schedule was not laid out based on the details of the building design, the building was designed based on the constraints of the situation. T f l d i th iddl f N Y k Cit i dil e a nl e a nl e a n Two acres of land in the middle of New York City, zoning ordinances,

$35,000,000 of capital, the laws of physics, and a May 1, 1931 deadline.

10/26/200928 Copyright©2009 Poppendieck.LLC

Page 29: Waste and Trashing

Lessons

Design the system to meet the constraints;Design the system to meet the constraints;Design the system to meet the constraints; Design the system to meet the constraints; do not derive constraints from the design.do not derive constraints from the design.

Decouple workflows; Decouple workflows; p ;p ;break dependencies! break dependencies!

Workflows are easier to control & Workflows are easier to control & di bl h h d ldi bl h h d ll e a nl e a nl e a n10/26/200929 Copyright©2009 Poppendieck.LLC

more predictable than a schedules.more predictable than a schedules.

Page 30: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In Process

Level the Workload Manage Workflows not Schedules Manage Workflows, not Schedules Establish a Regular CadenceEstablish a Regular Cadence

l e a nl e a nl e a nOctober 0930 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 31: Waste and Trashing

Establish a Regular Cadenceg

DeliveryDiscovery

Daily

Stories& Tests

Every 2-4 One Iteration Ah d

PrioritizedRoad Map:

yWeeks

Deployment- Ready

Software

Ahead

DD DDl e a nl e a nl e a n10/26/200931 Copyright©2009 Poppendieck.LLCfeatures

desirable

list of

FeedbackReadyReady––Ready Ready DoneDone––Done Done

Page 32: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In Process

Level the Workload Manage Workflows not Schedules Manage Workflows, not Schedules Establish a Regular Cadence

Li it W k T C itLimit Work To Capacity Timebox, Don’t ScopeboxTimebox, Don’t Scopebox

l e a nl e a nl e a nOctober 0932 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 33: Waste and Trashing

Timebox, Don’t Scopeboxp

The Iron Triangle: Cost Schedule and ScopeThe Iron Triangle: Cost, Schedule, and ScopeIf you can’t meet all three – which one suffers?

Do not Ask: How Do not Ask: How long will this take?long will this take?

A k i t d Wh tA k i t d Wh t

Cos

t

Ask instead: What can Ask instead: What can be done by this date?be done by this date?

l e a nl e a nOctober 0933 Copyright©2007 Poppendieck.LLCTime

Page 34: Waste and Trashing

Reducing Cycle Timeg y

Optimize Throughput – Not UtilizationOptimize Throughput Not Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In Process

Level the Workload Manage Workflows not Schedules Manage Workflows, not Schedules Establish a Regular Cadence

Li it W k T C itLimit Work To Capacity Timebox, Don’t Scopebox P llP ll D ’ P hD ’ P h l e a nl e a nl e a n Pull Pull –– Don’t PushDon’t Push

October 0934 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 35: Waste and Trashing

Pull SchedulingSmall RequestsSmall Requests

Output CapacityInput Flow

Never

l e a nl e a nl e a nOctober 0935 Copyright©2007 Poppendieck.LLC

Page 36: Waste and Trashing

Scheduling Large, Multi Team ProductsMulti-Team Products

StartProductConcept

A d

2 MonthsReview:

Customer InterestD id

5 MonthsReview:

Proof of ConceptD id

11 MonthsAction:

Beta ReleaseD id

15 MonthsFirst

ProductionR l

8 MonthsAction:

Alpha ReleaseD id

13 MonthsReview:

Beta ResultsD id

Base Estimates on Experience and Data

Approved Decide:Technical Approach

Decide:Alpha Release Features

Decide:1st Release Baseline

ReleaseDecide:Beta Release Features

Decide:1st Release Final

Not Wishful ThinkingNot Wishful ThinkingTimebox – Don’t ScopeboxpAsk NOT:Ask NOT: How long will this take?How long will this take?Ask instead:Ask instead: What can be done by this date?What can be done by this date?

l e a nl e a nyy

Integrating Events create cadence and pullOctober 0936 Copyright©2009 Poppendieck.LLC

Page 37: Waste and Trashing

Reducing Cycle Timeg y

Optimize ThroughputOptimize Throughput –– Not UtilizationNot UtilizationOptimize Throughput Optimize Throughput Not UtilizationNot Utilization Minimize the Number of Things In Process Minimize the Size of Things In ProcessMinimize the Size of Things In Process

Level the WorkloadLevel the Workload Manage Workflows not Schedules Manage Workflows, not Schedules Establish a Regular Cadence

Li it W k T C itLi it W k T C itLimit Work To CapacityLimit Work To Capacity Timebox, Don’t Scopebox P ll D ’ P h l e a nl e a nl e a n Pull – Don’t Push

October 0937 Copyright©2008 Poppendieck.LLCQueuing Theory 101

Page 38: Waste and Trashing

ll e a nft d l tsoftware development

Thank You!Thank You!More Information: www.poppendieck.com

www.poppendieck.comMary [email protected]@poppendieck.com

More Information: www.poppendieck.com