"lean software development: discovering waste" by mary poppendieck

26
l e a n software development www.poppendieck.com Mary Poppendieck [email protected] [email protected] Lean Software Development Discovering Waste

Upload: operae-partners

Post on 23-Jan-2015

9.253 views

Category:

Technology


1 download

DESCRIPTION

Mary Poppendieck's presentation at the 1st European Lean IT Summit held in Paris in October 2011

TRANSCRIPT

Page 1: "Lean software development: discovering waste" by Mary Poppendieck

l e a nsoftware development

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

Lean Software DevelopmentDiscovering Waste

Page 2: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Two Kinds of Software Development

Product Development Software intensive products.

Almost never referred to as IT by the people who do it.

Development generally does not report to a CIO.

Accounts for a large and growing majority of software developed today

Process SupportThe Application Development

portion of IT organizations.If you divide IT into Operations

and Application DevelopmentTHEN

“Standard” Lean Tools are appropriate for IT Operations

Avoid “Standard” Lean Tools for Application Development

October 112 Copyright©2011 Poppendieck.LLC

Page 3: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Lean for Development

Old-Fashioned Chocolate Layer Cake“We baked 130 cakes in search of the perfect wedge.”

October 11 Copyright©2011 Poppendieck.LLC3

What about? Standard workDo it right the first timeVariation 5 S’s

Why not? Learning cyclesDo it wrong lots of timesManage flow, not projects Simplicity

OperationsToolkit Development

Toolkit

Page 4: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Software Development

1. Build the Right Thing2. Build the Thing Right3. Deliver (& Learn) Fast

October 11 Copyright©2011 Poppendieck.LLC4

Page 5: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Build the Right Thing

There is nothing so useless as doing efficiently that which should not be done at all. – Peter Drucker

October 11 Copyright©2011 Poppendieck.LLC5

Most product failures are caused by

a lack of Customers.“Don’t to what customers say they want, understand their problems and solve them.”– Per Haug Kogstad,

founder, Tandberg (now Cisco)

Think Like a Customer

Page 6: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

What is Design Thinking?

Diverse Design TeamFramingObserve the SituationConceptualize the Problem

IdeationObtain Customer InsightsVisualize/Prototype Ideas

ExperimentationTry Tentative SolutionsRefine Mental Models

October 11 Copyright©2011 Poppendieck.LLC6

Refr

ame*

Iter

ate

*Pivot

Page 7: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 1: Extra Features

Cost of Complexity

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

Cos

tTime

Features / Functions Used in a Typical System

Standish Group Study Reported at XP2002 by Jim Johnson, Chairman

Always 7%

Often 13%

Sometimes16%

Rarely 19%

Never 45%

Rarely / NeverUsed: 64%

Often / AlwaysUsed: 20%

October 11 Copyright©2011 Poppendieck.LLC7

Page 8: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 2: Handovers A handover occurs whenever we separate:* Responsibility Knowledge Action Feedback

− What to do− How to do it− Actually doing it− Learning from results

*Alan Ward: Lean Product and Process Development

Not this: But this:PRIORITIZED!

October 11 Copyright©2011 Poppendieck.LLC8

Page 9: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

The Lean Startup

October 11 Copyright©2011 Poppendieck.LLC9

†https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=blog2009&path=blog2009/2011/agileVsLeanStartup&devLanguage=Java

Agile Vs. Lean Startup Adapted from similar chart posted by Joshua Kerievsky, Industrial Logic Blog† August, 2011

AgileProduct RoadmapProduct VisionRelease Plan

On-Site CustomerProduct Owner

BacklogUser Story

Acceptance TestDefinition of Done

Iteration ReviewIteration

Continuous Integration

Customer Feedback

Lean StartupBusiness Model CanvasProduct Market FitMinimal Viable Product

“Get Out Of The Building”Entrepreneur

“To Learn” ListHypothesis

Split TestValidated Learning

Persevere or PivotBuild-Measure-Learn Loop

Continuous Deployment

Cohort-based Metrics

Page 10: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Software Development

1. Build the Right Thing2. Build the Thing Right3. Deliver (& Learn) Fast

October 11 Copyright©2011 Poppendieck.LLC10

Page 11: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Build Quality In

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”?

Typical: 30%

Sometimes: 50%

Top Companies: <10%

Release Cycle

Every software development process ever invented has had the same primary goal – find and fix defects as early in the development process as possible. If you are finding defects at the end of the development process – your process is not working for you.

October 11 Copyright©2011 Poppendieck.LLC11

Page 12: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 3: Defects

The Longer Defects are Undetected, the Harder They are to Find.

October 11 Copyright©2011 Poppendieck.LLC12

Page 13: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 4: Technical Debt

Sloppy CodeCode reviews standards, quality, knowledge transfer.

October 11 Copyright©2011 Poppendieck.LLC13

DependenciesA divisible architecture is fundamental.

Technical Debt: Anything that makes code difficult to change

Unsynchronized Code BranchesThe longer two code branches remain apart, the more difficult they are to merge together.

No Test Harness (=Poka Yoke)Code without a test harness is Legacy Code.

Page 14: "Lean software development: discovering waste" by Mary Poppendieck

l e a nMatch?

A Defect Injection Process

Specifications

Tests Code

October 11 Copyright©2011 Poppendieck.LLC14

Page 15: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

A Defect Prevention Process

Specifications

TestsCode

October 11 Copyright©2011 Poppendieck.LLC15

Page 16: "Lean software development: discovering waste" by Mary Poppendieck

l e a nRe

port

sM

etad

ata

Repo

rts

Met

adat

a

BIN

ARI

S

Discipline on Steroids

Testers

Self-ServiceDeployments

SourceCode & Tests

UAT StageConfigure Environment

Deploy BinariesSmoke Test

Manual Testing

Repo

rts

Met

adat

a

Capacity StageConfigure Environment

Deploy BinariesSmoke Test

Run Capacity Tests

OperationsPush-Button

Releases

Testers

ProductionConfigure Environment

Deploy BinariesSmoke Test

Acceptance StageConfigure Environment

Deploy BinariesSmoke Test

Run Acceptance Tests

Commit StageCompile

Commit TestsAssembly

Code Analysis

BIN

ARI

S

VERSION CONTROL

ARTIFACT REPOSITORY

Environment& ApplicationConfiguration

Scripts

BIN

ARI

S

Develop StageDesign

Code & ScriptUnit TestRefactor

Repo

rts

Met

adat

a

October 11 Copyright©2011 Poppendieck.LLC16

Page 17: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Software Development

1. Build the Right Thing2. Build the Thing Right3. Deliver (& Learn) Fast

October 11 Copyright©2011 Poppendieck.LLC17

Page 18: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

The Fastest Learner Wins

October 11 Copyright©2011 Poppendieck.LLC18

Model Build

MeasureLearn

Page 19: "Lean software development: discovering waste" by Mary Poppendieck

l e a nPro

Pro

Waste 5: Work in Progress

Technical Debt: Change

is too expensive

Defects! Not found until

integration…Too Slow

Risk:Building the Wrong Thing

RISK:Building the

Wrong Thing.Competition Introduces a

better product. Poor UI

Work in Progress hides problems.

Lower the Work in Progress gradually;Expose the biggest problems first.

Wor

k in

Pro

gres

s Shrink the problems one at a time, biggest problem first.

Wor

k in

Pro

gres

s

October 11 Copyright©2011 Poppendieck.LLC19

Page 20: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 6: Task Switching

October 11 Copyright©2011 Poppendieck.LLC20

Page 21: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Waste 7: Delays

October 11 Copyright©2011 Poppendieck.LLC21

Page 22: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Total Cycle Time

Quick & Dirty Value Stream Map:

Release Cycle6 Months

October 11 Copyright©2011 Poppendieck.LLC22

Release CycleRelease Cycle

HardenSelect

Features UATDevelopFeatures

Request Features

Release Cycle

Total Cycle TimeValue-Added Time

Average Start EndStart

Request Features

Business Model: Software installed at customer site Support each release Avoid releases

Model Build

MeasureLearn

Page 23: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Release CycleQuarterly

Hardening must be 2 weeks.Typically: 2-4 week iterationsCode from each iteration goes to integration testingAutomated integration testing becomes necessary

October 11 Copyright©2011 Poppendieck.LLC23

Business issues: How to price and sell releases?Which releases to support?

Supporting multiple branches can create a support nightmare

Public vs. Private releases?

Model Build

MeasureLearn

Page 24: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Release CycleMonthly

Now you need:Cross Functional Team VisualizationShort Daily MeetingsSBE/TDD working!Hardening 3 days

Business EnvironmentWorks best for:Software as a Service (SaaS) Internal Software

October 11 Copyright©2011 Poppendieck.LLC24

Model Build

MeasureLearn

Page 25: "Lean software development: discovering waste" by Mary Poppendieck

l e a n

Release CycleWeekly/Daily/Continuous

Kanban works well

Iterations become irrelevant

High discipline is fundamental

Estimating is largely unnecessaryRapid cycles of learning drive portfolio decisions

October 11 Copyright©2011 Poppendieck.LLC25

DevOps:Test & deployment automation is essential

Business Issues: Increasingly common in startups

The team is everyone.

Model Build

MeasureLearn

Page 26: "Lean software development: discovering waste" by Mary Poppendieck

l e a nsoftware development

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

Thank You!More Information: www.poppendieck.com