Download - Mary Poppendieck: Agile under contract
l e a nsoftware development
www.poppendieck.comMary [email protected]@poppendieck.com
Agile Under ContractWin–Win Contracts
l e a n
System is delivered on time.Saves plant ½ its cost 1st month.Harold is a hero.Dave looks brilliant.I become plant IT manager.XRI: profit + reputation.
A True Story
The Cast of CharactersHarold (Senior Plant Product Engineer)
Dave (Division Engineering Manager)
Me (Process Control Engineer)
XRI (The Vendor)
Act IIEvery month for 18 months
I travel to XRI Harold often comes with meWe review the work of the
XRI development team
October 112 Copyright©2007 Poppendieck.LLC
Act IDave signs a time-and-materials
contract against his boss’s advice to go fixed price.
My job is to keep Dave out of trouble and make sure Harold gets what he needs.
Act III
l e a n
Lessons Learned
Lesson 1: Detailed “requirements” are actually solution design.Observation 1: Responsibility for success
lies with the solution designer.Conclusion: Responsibility for success lies with the
organization that specifies the detailed “requirements”.
October 11 Copyright©2011 Poppendieck.LLC3
l e a n
Why Not Fixed Price?
October 11 4Cop
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%
Early Scope Definition (protects the vendor) Excess Scope (protects the customer)
l e a n
Lessons Learned
Lesson 2: Development is a learning process. Observation 2: An experienced vendor can guarantee a
solution that works; but it should not be expected to guarantee the exact details of that solution.
Conclusion: Solution design emerges during the course of a contract, not as its first stage.
October 11 Copyright©2011 Poppendieck.LLC5
l e a n
Case Study:Stamping Dies
JapanMistakes very expensiveNever-ending changesFocus: Reduce TimeEarly Design – Early CutDesigner makes changes
Target cost (includes changes)10-20% cost for changesHalf the time, Half the cost
October 11 Copyright©2006 Poppendieck.LLC6
USMistakes very expensiveNever-ending changesFocus: Reduce WasteWait to Design – Wait to CutSlow change approval system
Fixed cost (changes are profit!)30-50% cost for changesTwice the time, twice the cost
l e a n
Lessons Learned
Lesson 3: Start with a clear understanding of the critical business results that must be delivered.Observation 3: It is the job of the development team
to determine how to deliver those results. Conclusion: Both parties must be committed to work
together to achieve the business goals.
October 11 Copyright©2011 Poppendieck.LLC7
l e a n
The Purpose of Contracts
Conventional WisdomCompanies inevitably look out for their own interestsContracts are needed to limit opportunistic behavior
The Agile Approach Assume other party will act in good faithLet the relationship limit opportunismUse the contract to set up incentivesAlign the best interests of each party
with the best interests of the joint venture
October 11 Copyright©2006 Poppendieck.LLC8
l e a n
Lessons Learned
Lesson 4: Mitigate development risk with frequent delivery/assessment.Observation 4: It is technically possible, less expensive,
and very desirable to deliver software in small increments.Conclusion 4: Regular delivery, deployment and evaluation
of useful functionality is the best software developmentrisk mitigation strategy.
October 11 Copyright©2011 Poppendieck.LLC9
l e a n
Case Study: T5 Agreement
Heathrow Terminal 5 2002 – 2008 ₤4.2 billion
BAA Delay would threaten existenceStudied other terminal projectsAssumed responsibility for risk
T5 AgreementLegally bindingContractors agree to: work in teams mitigate risks work to achieve the best
possible results
In Practice 147 Sub-Projects
Integrated Team Target Cost Pool of incentive/risk money 2/3’s split among contractors
On Time On Budget Very Safe
October 1110 Copyright©2008 Poppendieck.LLC
l e a n
Contracting Approach
1. Treat software development as a professional service. Most organizations contract for services
(legal, marketing, engineering, software maintenance). Software development contracts should follow
the patterns established for service contracts.
2. Contract for measurable business (not technical) results Specify levels of desirable/acceptable performance
Multiple levels: aspiration, acceptable, unacceptable Plan for incremental delivery/deployment/assessment
Maximum of 10% of contract (or 1 month) per increment Assess/adjust overall approach after each increment
3. Make both parties mutually responsible for results Risk should be born by the party most capable in the area Use the contract to align incentives of both parties
Consider overall target cost with short fixed price sub-contracts
October 11 Copyright©2011 Poppendieck.LLC11
l e a n
Target Cost
Based on high level business goals.Target cost includes all changesTarget is the joint responsibility of both partiesGoals and target cost are clearly communicated to
workers who are expected to work together and compromise to achieve the goals within the costNegotiations occur if target cost might be exceededNeither party benefits
Workers at all levels have clear incentives to work collaboratively, compromise, and meet the target.
October 11 Copyright©2006 Poppendieck.LLC12
l e a n
Partnership Contracts
Structure Umbrella or framework contract
Establishes critical business expectations Establishes target cost / schedule
Release work in stages Keep stages small Each stage is an iteration Iteration scope depends on the most pressing business needs
and the professional judgment of the development teamContract Form Describes the services, not the deliverables Establishes high level expectations and constraints Establishes ownership and intellectual property rights Provides the framework for negotiating iteration details Provides for disagreements: escalation, mediation, and termination
October 11 Copyright©2006 Poppendieck.LLC13
l e a nOctober 11 14Cop
The Agile Approach
Win-Win Contracts Based on mutual commitment To critical goals and constraints
Provide for risk sharing Risk born by party most able to manage it
Establish correct incentives for all parties to work together for the good of the Joint Venture
Assume learning will occur over time Expect a professional response to change and uncertainty Almost always yield faster, better, cheaper results
l e a nsoftware development
www.poppendieck.comMary [email protected]@poppendieck.com
Thank You!More Information: www.poppendieck.com