lean software development - tpm consulting service · mary poppendieck [email protected] lean...

73
Mary Poppendieck [email protected] www.poppendieck.com Lean Software Development An Agile Toolkit

Upload: dinhxuyen

Post on 10-Apr-2018

227 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Mary [email protected]

Lean Software Development

An Agile Toolkit

Page 2: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 2

The Toyota Production System

Approach to ProductionBuild only what is neededStop if something goes wrongEliminate anything which does not add value

Philosophy of WorkRespect for WorkersFull utilization of workers’ capabilitiesEntrust workers with responsibility & authority

Taiichi Ohno

(1912-1990)

Page 3: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 3

T im e

Changing the Mental Model

Setup Time

Received Knowledge:Die Change is ExpensiveDon’t Change Dies

Taiichi OhnoEconomics Requires Many Dies Per Stamping Machine One Minute Die Change

Cost of Change

Received Knowledge:Code Change is ExpensiveFreeze Design Before Code

The Agile ImperativeEconomics Requires Frequent Change In Evolving Domains Last Responsible Moment

Agile

Received Knowledge

Page 4: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 4

Concurrent Engineering1981 – GM Starts the G-10 Project

1988 – Buick Regal1989 – Olds Cutlass & Pontiac Grand Prix

1986 – Honda Starts the New Accord Project1989 – Introduced as 1990 model1990’s – Largest-selling model in North America

A New Mental ModelInstead of

Haste Makes Waste Quality Costs More

We knowDelay Makes WasteQuality Saves

2 Years Late

The Machine That Changed The World, Womack, 1990

Page 5: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 5

Stamping DiesToyota

Mistakes very expensive

Never-ending changes

Early Design – Early Cut

Focus: Reduce Time

Designer goes to supplier shop, discusses changes, implements immediately, submits for later approval

Target cost (including changes)

10-20% cost for changes

Half the time, half the cost

Typical USMistakes very expensive

Never-ending changes

Wait to Design – Wait to Cut

Focus: Reduce Waste

Designer must get multiple signatures for changes, sends to purchasing which sends change document to vendor

Fixed cost (changes are extra, profit source for supplier)

30-50% cost for changes

Twice the time, twice the costClark & Fujimoto, Product Development Performance, 1991

Page 6: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 6

Concurrent Software Development

Why are we doing this?

What needs to be done?

How do we build it?

DomainContext

Time

Com

mun

icat

ion

How do we support it?

Page 7: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Principles of Lean Thinking

1. Eliminate Waste2. Increase Feedback3. Delay Commitment4. Deliver Fast5. Build Integrity In6. Empower the Team7. See the Whole

Page 8: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 8

Principle 1: Eliminate Waste

WasteAnything that does not create value for the customerThe customer would be equally happy with the software without it

Prime Directive of Lean ThinkingCreate Value for the customerImprove the Value Stream

Page 9: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 9

Seeing Waste

DefectsDefects

Task SwitchingMotion

Waiting for InformationWaiting

Building the Wrong ThingTransportation

Extra FeaturesOverproduction

PaperworkExtra Processing

Partially Done WorkInventory

Seven Wastes of Software Development

Seven Wastes of Manufacturing*

* Shigeo Shingo, an engineer at Toyota and a noted authority on just-in-time techniques.

Page 10: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 10

The biggest source of waste

Features and Functions Used in a Typical System

Standish Group Study Reported at XP2002 by Jim Johnson, Chairman

Always7%

Often13%

Sometimes16% Rarely

19%

Never45%

Rarely or NeverUsed: 64%

Often or AlwaysUsed: 20%

Page 11: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 11

Traditional Value Stream

Bottlenecks:ApprovalsSign Offs Design ReviewTestingDeployment

Total Time: ~55 weeksWork Time ~17.6 weeks

1/3rd of the timeWait Time ~37 Weeks

2/3rds of the time

Page 12: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 12

Lean Value StreamTotal Time: ~17 weeks

Work Time ~14.2 weeks84% of the time

Wait Time ~2.8 Weeks 16% of the time

Levers:Concurrent DevelopmentEffective Gating Process

Page 13: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 13

Exercise

Choose a system you know aboutEstimate % of the features are always or often used

Choose a development cycle you are familiar with

Estimate the average it takes to convert customer requests into deployed software

DeployCode

SubmitRequest

What is the Average Cycle Time

Page 14: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Principles of Lean Thinking

1. Eliminate Waste2. Increase Feedback3. Delay Commitment4. Deliver Fast5. Build Integrity In6. Empower the Team7. See the Whole

Page 15: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 15

Principle 2: Increase Feedback

Cruise Control

Car

ThrottleComparison

SpeedSensor

Set Speed60 mph

CodeComparison

CurrentSystem

Capability

System

CurrentDesignIntent

Developer

CurrentBusiness

NeedsCustomer

Software Development

Page 16: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 16

The fundamental PracticeWaterfall

Doesn’tWork!

Iterative Incremental Development

Works!

* Craig Larman, “A History of Iterative and Incremental Development”, IEEE Computer, June 2003

A simplistic butinferior idea, similar to medicine’s “four humors”.*

Recommended by software engineering thoughtleaders, associated with numerous successful large projects & recommended by standards boards.*

Page 17: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 17

Simple Rules of IterationBusiness Sets Priority

Minimum Marketable Features (MMF)Development Team Determines Effort

Team chooses and commits to iteration goalUse a Short Time Box

Drop features to meet the deadlineDeliver on Commitment

Develop ConfidenceCreate Business Value

Potentially Deployable Code

Page 18: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 18

Minimum Marketable Features (MMF)

Deploy Early & Often – Move Profit Forward

Software by Number by Mark Denne and Jane Cleland-HuangSelf-Funding

Breakeven

Inve

stm

ent

Pay

back

Pro

fit

Time

Cos

t

Page 19: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 19

for Troubled Projects

Increase Feedback !Customer Feedback to TeamTeam Feedback to ManagementProduct Feedback to TeamUpstream-Downstream Feedback

Don’t Decrease FeedbackAdding Yet More Process Rarely Helps

Page 20: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 20

Principle 3: Delay Commitment

The technology changes rapidlyThe business situation evolvesSoftware will change!

Software productsImprove with ageArchitecture is expected to change over time

Custom softwareBecomes brittle with ageArchitecture is not expected to changeBut 60-70% of software development occurs after initial release to production

Page 21: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 21

Cost EscalationTwo Kinds of Change

High Stakes Constraints

Examples:LanguageLayeringUsabilitySecurityScalability

Rule:Only a FewAt a High Level

Most ChangesKeep the Cost Low!

Page 22: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 22

Predictable Outcomes

A Minnesota Wedding August 10th

50% Chance of Rain65-95 ºF

Invitations must be sent in June

To Get Predictable Outcomes, Don’t Predict!Make Decisions based of Facts, not Forecasts.

?

Page 23: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 23

Share partially complete design information.

Develop a sense of how to absorb changes.

Avoid extra features.

Develop a quick response capability.

Develop a sense of when to make decisions.

Delay Commitment

Page 24: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 24

Separate ConcernsA module should have only one responsibilityAnd only one reason to change

Defer ImplementationYou Aren’t Goanna Need ItIt costs a bundle to maintain and a bundle to change

Software Delaying Tactics

Encapsulate VariationGroup what is likely to change together inside one moduleKnow the domain!

Avoid RepetitionDon’t Repeat YourselfOnce & Only OnceNever copy & pasteNever!

Page 25: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 25

Principle 4: Deliver FastThe most disciplined organizations are those that respond to customer requests

RapidlyReliablyRepeatedly

Software Development MaturityThe speed at which you reliably and repeatedlyconvert customer requests to deployed software

DeployCode

SubmitRequest

Measure The Average Cycle Time

Shorter Time = More Maturity

Page 26: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 26

Principles of SpeedPull from customer demand

Pull with an orderDon’t push with a schedule

Make work self-directingVisual Workplace

Rely on local signaling and commitmentKanbanScrum Meetings

Use Small BatchesLimit the amount of work in the pipeline

Page 27: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 27

Manufacturing: Kanban

Page 28: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 28

Software Kanban

Story Cards or Iteration Feature ListHow do developers know what to do?

Information RadiatorsWhite BoardsCharts on the Wall

Daily MeetingsStatusCommitmentNeed

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story XXLogin New UserAfal;jdsa;fuwe

Story XXLogin New UserAfal;jdsa;fuwe

Story XXLogin New UserAfal;jdsa;fuwe Story XX

Login New UserAfal;jdsa;fuwe

Story XXLogin New UserAfal;jdsa;fuwe

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story YYLogin New UserGet PasswordAfal;jdsa;fuwe

Story XXLogin New UserAfal;jdsa;fuwe

Tests PassedChecked Out To Do

Page 29: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 29

Make Convergence VisibleTime to Complete (in staff-days)

0

100

200

300

400

500

600

700

jan feb mar apr may jun jul aug sep oct nov dec

Time to Complete (in staff days)

0

100

200

300

400

500

600

jan feb mar apr may jun jul aug sep oct nov dec

0

50

100

150

200

250

1 2 3 4 5 6 7 8 9 10

Iteration

Acc

epta

nce

Test

s Tests Written

Tests Passing

Page 30: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 30

Queues

Cycle TimeAverage End-to-End Process Time

From Entering The TerminalTo Arriving at the Gate

Time Spent in a Queue is Wasted TimeThe Goal: Reduce Cycle Time

Page 31: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 31

Reducing Cycle Time

1. Steady Rate of ArrivalDevelop In Short Iterations

2. Steady Rate of ServiceTest Features Immediately

3. Small Work PackagesIntegrate Features Individually

4. Reduce UtilizationYou Don’t Load Servers to 90%

5. Eliminate BottlenecksEveryone Pitches In Wherever They Are Needed

5

Page 32: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 32

Queueing Theory Lessons

Cycle Time as a Function of Utilization and Batch Size

0

5

10

15

20

25

30

35

40

45

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

Cyc

le T

ime

(hou

rs)

Small BatchesMedium Batches Large Batches

1. Small Batches Move Faster2. Slack Resources Decrease Cycle Time

Page 33: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 33

XP’s 12 practices1. The Planning Aim2. Small Releases3. Metaphor4. Simple Design5. Testing6. Refactoring7. Pair Programming8. Collective Ownership9. Continuous Integration 10. Sustainable Pace11. On-Site Customer12. Coding Standards

Page 34: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 34

Case Study: XP

DiscussionHow do XP practices

Increase FeedbackDelay CommitmentDeliver Fast

ExamplesGearworksYour experience

Page 35: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 35

Do• Write tests before code• Eliminate duplication• Refactor mercilessly• Leave code better than

you found it• Only write tests for

contracts• Write tests for bugs

(before fixing them)• Don’t be afraid to throw

away code• Use local databases

Don’t • Put off refactoring• Open up visibility just for testing• Write time/date brittle tests• Test generated code

From Gearworks developers

Page 36: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 36

Scrum

every 24every 24hourshours

30 days30 days

Scrum: 15 minute daily meeting.Teams member respond to basics:1) What did you do since last Scrum Meeting?2) Do you have any obstacles? 3) What will you do before next meeting?

Product Backlog:Prioritized product features desired by the customer

Sprint Backlog:Feature(s)assignedto sprint

Backlogitems

expandedby team

New functionalityis demonstratedat end of sprint

Page 37: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 37

Case Study: Scrum

How does ScrumIncrease FeedbackDelay CommitmentDeliver Fast

ExamplesMinnesota Secretary of State UCC SystemYour examples

Page 38: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Break

Page 39: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Principles of Lean Thinking

1. Eliminate Waste2. Increase Feedback3. Delay Commitment4. Deliver Fast5. Build Integrity In6. Empower the Team7. See the Whole

Page 40: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 40

Principle 6: Build Integrity In

Without RefactoringWith RefactoringWhy are we doing this?

What needs to be done?

How do we build it?

DomainContext

Time

Com

mun

icat

ion

How do we support it?

Integrated Product Teams Refactoring

Test-Driven DevelopmentRequirements Refactoring MaintenanceFeedback

CodeComparison

CurrentCapability

System

CurrentDesignIntent

Developer

CurrentBusiness

NeedsCustomer

Page 41: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 41

Test-Driven Development

Requirements Feedback

Refactoring Maintenance

CodeComparison

CurrentSystem

Capability

SystemUnderTest

CurrentDesignIntent

Developer

CurrentBusiness

NeedsCustomer

Page 42: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 42

Automated tests:The key discipline of Agile

Don’t attempt iterative development without automated testsDevelopers will to write tests anyway

Why not write the test first? Why not capture the tests and automate them?Why not make tests a part of the code base?

Legacy code is code without a test harness

Page 43: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 43

Agile Testing Types of tests

Developer TestsDo the underlying mechanisms work?

Customer TestsIs the business purpose achieved?

-ability Tests Load/StressSecurityUsability

Never automated!Etc.

Page 44: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 44

Testing Discussion

What is your company’s testing practice?

Is testing integrated with development?Is testing driven by requirements documents?

Could test documents replace requirements documents?

How much testing is automated?

Page 45: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 45

Refactoring1. Simplicity

The goal of most patterns2. Clarity

Common languageEncapsulationSelf-documenting code

3. Suitable for UseUsabilityPerformance

4. No RepetitionNO REPITITION!

5. No Extra FeaturesNo Code Before its TimeNo Code After its Time

Without Refactoring

With Refactoring

Page 46: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 46

Isn’t Refactoring Rework?

Absolutely not!

Refactoring is the outcome of learningRefactoring is the cornerstone of improvementRefactoring builds in the capacity to changeRefactoring doesn’t cost, it pays

Stop!Refactor!

Page 47: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 47

Techniques for Emergence

Use automated test harnessesLegacy software is software without a test harness

Refractor ruthlesslyRefactoring is NOT rework

Use devisable architectures Based on a deep understanding of the domain

Provide Technical LeadershipAnd Communities of Expertise

Use Set-Based DesignKeep Options Open

Page 48: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 48

LeadershipChampion

Creates the visionRecruits the teamFinds Support‘Responsible’ for the design

Chief EngineerUnderstands the Target CustomerWrites the Product ConceptBrings Customer Vision to Technical WorkersMakes Key Technical Tradeoff Decisions

Master DeveloperAlso Known As:

ArchitectSystems EngineerChief Programmer

Page 49: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 49

Communities of Expertise

MatrixValue Adding Teams

Communities of Expertise

Functional ManagersTeacher

HireMentorSet StandardsEstablish Communities

Team LeadersConductor

Assemble the TeamClarify the PurposeMake Work Self OrganizingSee to Individual Motivation

Communities of Expertise

Valu

eA

ddin

g Te

ams

Page 50: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 50

Point-Based vs. Set-Based

Point Based DesignSet up a meeting using the point-based model.

Set Based DesignNow set up the meeting by communicating about sets.

A: Uh, already booked. Can you meet at 3:00?

A: I can meet 10:00 - 1:00 or 3:00 - 5:00. Can you make any

of these times?

B: Let’s meet 12:00 - 1:00.

based on dissertation by Durward K. Sobek, II, 1997

A: My best time is 10:00. Can you make it?

B: No, I can’t. How about 2:00?

B: No, 3:00 is bad. 9:00?

?

You already understand this!

Page 51: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 51

Set-Based Design is Counterintuitive

Point Based Design Set Based Design

Analyze & Critique

Modify

Styling

Marketing

Body

Chassis

Body Structural Capability

Suspension Alternatives

Styling Alternatives

Acceptable

Manufacturing

based on dissertation by Durward K. Sobek, II, 1997

DesignSolution

Page 52: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 52

Set-Based Development

→ Vehicle concept

→ Vehicle sketches

→ Clay models

→ Design structure plans

→ First prototype

→ Second prototype

→ Production trials

→ Release to production

Communicate Constraints,

Not Solutions

Gradually Narrow the Tolerances

Mile

ston

es

Page 53: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 53

Software Examples

Medical Device Software

Choosing Technology

Web Site Design

Page 54: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 54

Discussion

Should TDD be done from developer tests or customer tests?Should legacy code be refractored or discarded? Is there a place for specialists? What is the role of an architect?

Page 55: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 55

Software IntegrityPerceived (External) Integrity

The totality of the system achieves a balance of function, usability, reliability and economy that delights customers.

Conceptual (Internal) IntegrityThe system's central concepts work together as a smooth, cohesive whole.

PerceivedIntegrity

ConceptualIntegrity

Page 56: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 56

Integrity comes from Excellent, Detailed Information Flow

Page 57: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 57

Agile Customer Toolkit

OneOneDomainDomainLanguageLanguage

Why are we doing this?

What needs to be done?

How do we build it?

Mission & VisionMission & Vision CapabilitiesCapabilitiesSuccess ModelSuccess Model PrioritiesPriorities

Role Model, UC Model, UI ModelRole Model, UC Model, UI ModelMMFMMF’’s, User Stories s, User Stories --> Customer Tests> Customer Tests

Programmer Tests Programmer Tests --> > Working SoftwareWorking Software

How do we support it?

Page 58: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 58

Domain Driven DesignFind the right words

Domain LanguageDecide what to do

RolesCharacters

Use CasesPlot, Dialog

InterfacesAction

Understand Constraints-abilities

Page 59: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 59

Conceptual Integrity

Integrated Product TeamLeast Integrated

MostIntegrated

Timing of Upstream-Downstream Activities

Richness of Information Media

Frequency of Information Transmission

Direction of Communication

Timing of Upstream-Downstream Information Flow

Sequential(phased)

Documentse-mail

Batch Transmission

(one-shot)

Unilateral

Late ReleaseOf CompleteInformation

Stage Overlap(simultaneous)

Face-to-Face(high bandwidth)

Fragmented(piece-by-piece)

Bilateral(feedback)

Early Releaseof Preliminary

Information

Page 60: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 60

Discussion:Integrated Product Teams

You are asked to recommend members for an IPT for your organization.

What functions would you have on it?What level of people in the organization?Who would lead it?How often would it meet?Sketch a typical meeting agenda.

Page 61: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Principles of Lean Thinking

1. Eliminate Waste2. Increase Feedback3. Delay Commitment4. Deliver Fast5. Build Integrity In6. Empower the Team7. See the Whole

Page 62: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 62

Principle 6:Empower the team

1982 – GM Closed the Fremont, CA PlantLowest ProductivityHighest Absenteeism

1983 – Reopened as NUMMI (Toyota & GM)Same work forceWhite-collar jobs switch from directing to supportSmall work teams trained to design, measure, standardize and optimize their own work

1985 Productivity & quality doubled, exceeded all other GM plantsDrug and alcohol abuse disappearedAbsenteeism virtually stoppedTime to expand the plant

Page 63: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 63

Value those who add value

Who decides what they do next?Who designs their processes?

Do They Believe TheyMake The Decisions?

Resources

Informatio

n

Training

Organizational Energy

Process Design Authority

Decision Making Authority

Page 64: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 64

1. Small Team 2. Clear Mission3. Short Timeframe4. Staffed with the necessary skills

Technology ExpertiseDomain Experience

5. Enough information to determine feasibility6. Assured of getting needed resources7. Freedom to make decisions8. Basic environment for good programming

Coding Standards Version Control Tool Automated Build Process Automated Testing

Team Commitment

Page 65: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 65

Software Kaizen EventGive them a challenge

Present recommendations

Decide at a Town Meeting

Implement immediately

Bring people together

Brainstorm solutions

Page 66: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 66

Principle 7: See the Whole

AggregationYou get what you measureYou can’t measure everythingStuff falls between the cracksYou measure UP one levelYou get global optimization

DecompositionYou get what you measureYou can’t measure everythingStuff falls between the cracksYou add more measurementsYou get local sub-optimization

Span of InfluenceHold people accountable for what they can influenceMeasure at the team levelFosters collaboration

Span of ControlHold people accountable for what they can controlMeasure at the individual levelFosters competition

Measure UPMeasure DOWN

Page 67: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 67

Beyond company boundaries

319 days 3 hours (0.04%) processing timeEveryone Looking Out For Their Own InterestsFr

om L

ean

Thin

king,

by

Jam

es W

omac

k &

Dani

el J

ones

, 199

6

Mine20 min process2 weeks store

Reduction Mill2 weeks store

30 min process2 weeks store

Smelter3 months store30 min process2 weeks store

Hot Roller2 weeks store1 min process4 weeks store

Cold Roller2 weeks store

< 1 min process4 weeks store

Can Maker2 weeks store1 min process2 weeks store

Bottler4 days store

1 min process5 weeks store

RetailWarehouse3 days store

Retail Store2 days store

Home3 days store

5 min process

Page 68: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 68

Optimize the Economic Chain

In every single case, the Keiretsu (K-ret-soo), that is, the integration into one management system of enterprises that are linked economically, has given a cost advantage of at least 25% and more often 30%.*

Keiretsu : a group of affiliated companies in a tight-knit alliance that work toward each other's mutual success.

GM: 1920’s – 1960’sOwnership

Sears: 1930’s – 1970’sPartial ownership, contracts

Marks & Spencer: 1930’s – ? Contracts

Toyota: 1950’s – presentContracts, economic incentives

* Management Challenge for the 21st Century, Peter Drucker

Page 69: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 69

How to get Started

1. Assemble a Keiretsu2. Map the existing value stream3. Map the future value stream

Use Lean PrinciplesIndicate where key changes are needed

4. Use Kaizen events to create change5. Repeat from (1.)

Page 70: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 70

ExerciseAt what level can you assemble a Keiretsu? What organizations would be in the Keiretsu?Draw a current map for your Keiretsu.Draw a future map.List the Kaizen Events for achieving the future map.

Page 71: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

Principles of Lean Thinking

1. Eliminate Waste2. Amplify Learning3. Decide as Late As Possible4. Deliver as Fast as Possible5. Empower the Team6. Build Integrity In7. See the Whole

Page 72: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 72

Bibliography – Lean ThinkingAustin, Robert D. Measuring and Managing Performance in Organizations. Dorset House, 1996.

Christensen, Clayton M. The Innovator’s Dilemma. Harvard Business School Press, 2000.

Clark, Kim B., & Takahiro Fujimoto. Product Development Performance: Strategy, Organization, and Management in the World Auto Industry. Harvard Business School Press, 1991.

Collins, Jim. Good to Great: Why Some Companies Make the Leap…and Others Don’t. HarperBusiness, 2001.

Drucker, Peter F, Management Challenges for the 21st Century, Harper Business2001

Dyer, Jeffrey H. Collaborative Advantage: Winning Through Extended Enterprise Supplier Networks. Oxford University Press; 2000.

Freedman, David H. Corps Business. HarperBusiness, 2000.

Goldratt, Eliyahu M. The Goal: A Process of Ongoing Improvement, 2nd rev. ed. North River Press, 1992.

Klein, Gary. Sources of Power: How People Make Decisions. MIT Press, 1999.

O’Reilly, Charles A., III, & Jeffrey Pfeffer. Hidden Value: How Great Companies Achieve Extraordinary Results with Ordinary People. Harvard Business School Press, 2000.

Ohno, Taiichi. The Toyota Production System: Beyond Large-Scale Production. Productivity Press, 1988.

Reinertsen, Donald G. Managing the Design Factory: A Product Developer’s Toolkit. Free Press, 1997.

Smith, Preston G., & Donald G. Reinertsen. Developing Products in Half the Time: New Rules, New Tools, 2nd ed. John Wiley & Sons, 1998.

Ward, Allen, Jeffrey K. Liker, John J. Cristaino, & Durward K. Sobek, II. “The Second Toyota Paradox: How Delaying Decisions Can Make Better Cars Faster.” Sloan Management Review 36(3): Spring 1995, 43–61.

Womack, James P., & Daniel T. Jones. Lean Thinking, Banish Waste and Create Wealth in your Corporation.Simon and Schuster, 1996. Second Edition published in 2003.

Womack, James P., Daniel T. Jones, & Daniel Roos. The Machine That Changed the World: The Story of Lean Production. HarperPerennial, 1991.

Page 73: Lean Software Development - TPM Consulting Service · Mary Poppendieck mary@poppendieck.com  Lean Software Development An Agile Toolkit

March, 2003 Copyrignt©2003 Poppendieck.LLC 73

Bibliography – Software DevelopmentBeck, Kent, Test Driven Development: By Example, Addison-Wesley, 2003

Beck, Kent, & Martin Fowler. Planning Extreme Programming. Addison-Wesley, 2001.

Beck, Kent. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.

Cockburn, Alistair. Agile Software Development. Addison-Wesley, 2002.

Cockburn, Alistair. Writing Effective Use Cases. Addison-Wesley, 2000.

Constantine, Larry, & Lucy Lockwood. Software for Use: A Practical Guide to the Models and Methods of Usage-Centered Design.Addison-Wesley, 1999.

Cusumano, Michael A., & Richard W. Selby. Microsoft Secrets: How the World’s Most Powerful Software Company Creates Technology, Shapes Markets, and Manages People. Simon & Schuster, 1998.

Denne, Mark and Jane Cleland-Huang, Software by Numbers: Low-Risk, High-Return Development, Prentice Hall, 2004

Evans, Eric. Domain Driven Design. Addison-Wesley, 2003.

Fowler, Martin, Patterns of Enterprise Application Architecture, Addison-Wesley, 2003

Highsmith, Jim. Agile Software Development Ecosystems. Addison-Wesley, 2002.

Highsmith, James A. Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. Dorset House, 2000.

Hohmann, Luke. Beyond Software Architecture: Creating and Sustaining Winning Solutions. Addison Wesley, 2003.

Hunt, Andrew, & David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 2000.

Jeffries, Ron, Ann Anderson, & Chet Hendrickson. Extreme Programming Installed. Addison-Wesley, 2001.

Johnson, Jeff. GUI Bloopers: Don’ts and Do’s for Software Developers and Web Designers. Morgan Kaufmann Publishers, 2000.

Larman, Craig. Agile & Iterative Development: A Manager’s Guide, Addison-Wesley, 2003

Poppendieck, Mary & Tom Poppendieck. Lean Software Development: An Agile Toolkit. Addison-Wesley, 2003.

Schwaber, Ken, & Mike Beedle. Agile Software Development with Scrum. Prentice Hall, 2001.

Thimbleby, Harold. “Delaying Commitment.” IEEE Software 5(3): May 1988.