discovering waste 4 paris (4) - lean-it-summit.com · l e a n software development...

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

Upload: vankien

Post on 10-Apr-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

l e a nsoftware development

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

Lean Software DevelopmentDiscovering Waste

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

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

l e a n

Software Development

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

October 11 Copyright©2011 Poppendieck.LLC4

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

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

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

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

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

l e a n

Software Development

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

October 11 Copyright©2011 Poppendieck.LLC10

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

l e a n

Waste 3: Defects

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

October 11 Copyright©2011 Poppendieck.LLC12

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.

l e a nMatch?

A Defect Injection Process

Specifications

Tests Code

October 11 Copyright©2011 Poppendieck.LLC14

l e a n

A Defect Prevention Process

Specifications

TestsCode

October 11 Copyright©2011 Poppendieck.LLC15

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

l e a n

Software Development

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

October 11 Copyright©2011 Poppendieck.LLC17

l e a n

The Fastest Learner Wins

October 11 Copyright©2011 Poppendieck.LLC18

Model Build

MeasureLearn

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

l e a n

Waste 6: Task Switching

October 11 Copyright©2011 Poppendieck.LLC20

l e a n

Waste 7: Delays

October 11 Copyright©2011 Poppendieck.LLC21

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

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

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

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

l e a nsoftware development

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

Thank You!More Information: www.poppendieck.com