Agile Contracts?
AgilePrague 2012Johannes Brodwall, Principal Architect
Steria Norway
@jhannes
Part I
Motivation
Agile ManifestoIndividuals and interactions over processes and toolsWorking software over comprehensive documentation
Customer collaboration over contract negotiationResponding to change over following a plan
Agile ManifestoIndividuals and interactions over processes and toolsWorking software over comprehensive documentation
Customer collaboration over contract negotiationResponding to change over following a plan
Does «contract» make a difference?
Supplier
Customer
Hold on, I expected a much fancier UI
for this.?
Most common contracts:Fixed price
Time and material
Supplier
Customer
Hold on, I expected a much fancier UI
for this.
CrapCrap
Supplier
Customer
Hold on, I expected a much fancier UI
for this.No problem, we’ll work some more
«Time and material» creates the most happiness
«Time and material» creates the most happiness
(Source: My best and worst projects)
«Time and material» creates the most happiness
(Also for customer!)
So why care about the rest?
Do you pay taxes?
How should your government handle:
• We’re running out of money for pensions• We need to change the rules!
• The current system is huge
How should govt spend your money?
• A big, state-run project?• Hire a random company to do it all?
• Just pay consultants until it’s done?• “Just be agile”?
Can Agile help?
Customer collaboration over contract negotiation:
• Contracts hurt• Big tax-funded projects are inevitable
• Agile can help – but insufficient
Part II
PS2000 + Agile
Typical Norwegian public sector project:
«We need to replace huge system X…
Typical Norwegian public sector project:
«We need to replace huge system X…
… we’d like to use Scrum»
PS2000:«Target price»
(Target price:Set a budget,
report cost.Supplier & client splits difference)
PS2000 + agile:«Colocated»
«Sprints»
«Sprint reviews»
«Product owner»
«Product backlog»
… but also«Negotation phase»
«Requirement phase»
«Acceptance test phase»
Whence PS2000?
Contract standard from Norwegian Computing
Association
2001: PS2000 with target price
2009: PS2000 + Agile
Norwegian trends:• Active community
• Meetups about contracts• Scrum certifications
• Large and diverse consultancy industry
Some project highlights
In p
rogre
ssLARM: Domain: Electricity reserve power
Application: Operator UI
Internal Integration
Project size: 2 scrum teams plus support
Organization: Supplier + Customer teams
Colocated at customer site
Team size: 7 per team
Duration: 3 years (1,5 years left)
Sprint length: 3 weeks (customer present)
Releases: 3 times per year
Contract: Target pricing for whole scope
?
Bid
Apr, 2010
Negotiation
Aug, 2010
Mar, 2010
Elaboration
Nov, 2010
Release 1Sprint Sprint Sprint Sprint Sprint
May, 2011
Acceptance Production
Sept, 2011
Elaboration Sprint Sprint Sprint
Sprint Sprint
Sprint
SIGNED
Smart move:Reliable product backlog using
scenarios
Big win:First release in use 1 year after contract, containing most used
screen
Big loss:Feature creep of individual user
stories
CompletedPERFORM:
Domain: State pension fund
Application: Case worker UI
External Integration
Process flow
Project size: 12-14 scrum teams plus support
Organization: Three suppliers with 3-6 teams
Colocated at customer site
Team size: 10 per team
Duration: 3 years
Releases: 3 times per year
Sprint length: 3 weeks, with shared demo
Contract: First release: Time & materials
Subsequent:
Target pricing per release
Smart move:Contract on price per release
First release on T&M
«Competing» suppliers
Big win:Delievered what was needed
Government is happy
Users are happy
Big loss:Full time requirement spec
Hostile architecture team
Customer collaboration over contract negotiation
Reality:• We must compete
• We must commit
Part III
Wishful contracts
The source of our troubles
Fabulation
Speculation
Bungling
Yelling
Worrying
2 year - development Use
Fabulation
Speculation
Bungling
Yelling
Worrying
2 years - development Use
ContractPriceScope
DeliverableOk?
The problem
Fabulation
Speculation
Bungling
Yelling
Worrying
2 years - development Use
ContractPriceScope
A way out?
Pure fa
briactio
nIMAGINE:
Project size: Some scrum teams with independent
users and product owners
Organization: Colocated at customer site
Team size: 6-8 per team
Duration: 3 years
Sprint length: 2 weeks, with shared demo
Releases: Every month
Bidding: Performance competition
Contract: Target estimate per user story
Pricing: Unit pricing
Menu:• Simple GUI: 20 kNOK• Complex GUI: 50 kNOK• GUI that customer decides
how looks: 100 kNOK
(Or 2, 5, 20 story points)
Supplier
Customer
I need a screen shot for X. We want something simple.
Ok. 2 kEURO
Supplier
Customer
Do you have anything to show for it?
We’ve spent half the budget
Nothing that is tested yet
Okay, I’m pulling the
plug
Supplier
Customer
Stop!
We’ve spent the budget
Supplier
Customer
But I wanted rounded corners, and gradients!
No problem, but that means it’s
no longer «simple»
Oh, never mind.
(I hate having this sort of discussions)
Supplier
Customer
But I wanted …!
Oh, I guess we have to do it, then
No way! Change order!
Hmm…we didn’t consider that when we gave the price
Bidding: Competitive delivery
Supplier
Supplier
Supplier
Supplier
Supplier
Customer
Project referenceResumesHourly rates
Supplier
Pre-qualification
Supplier
Supplier
Supplier
Supplier
Supplier
Supplier
6-10 weeks
Supplier
Supplier
Analysis
CodingD
elivery
Analysis
Coding
Delivery
Analysis
CodingCoding
AnalysisDelivery
Delivery
Supplier
Supplier
Supplier
Analysis
CodingD
elivery
Analysis
Coding
Delivery
Analysis
CodingCoding
AnalysisDelivery
Delivery
Supplier
Another model
Pure fa
briactio
n
Supplier Commitment:
Δ ☺
Δ $
IMAGINE:
Questions and discussions
Conclusion
Customer collaboration over contract negotiation
We need an answer for large investments
Norway’s answer ain’t half bad
Norway’s answer ain’t half bad
But
We can do better