Agile Contracts

Preview:

DESCRIPTION

How do you sell an agile project? Most clients expect to buy software by time-and-material or by fixed-price-fixed scope contracts based on detailed requirements. These models cannot create a fertile environment for collaboration between client and vendor.In this presentation, we report on our experiments with commercial contracts that supports an agile development process, based on concrete examples of win-win contract types. We will outline the different aspects of these contracts, as well as experiences creating and delivering software solutions under these contracts.

Citation preview

Agile ContractsLars ThorupZeaLake Software Consulting

October 18, 2011

payment

effort

Who is Lars Thorup?● Managing software

development● 10 years of agile practices● 15 years of automated testing

● Introducing agile and automated testing with clients

● Assessing software projects and companies

● Founder of 2 agile consulting companies● 12+ senior consultants● 10+ years

Background● A Danish agile consulting company, BestBrains

● Founded 10 years ago● Agile and Lean coaching for software businesses● Some body shopping (interim management and software

development) on hourly rate

● New business area 3 years ago● Develop and deliver custom software solutions● ...using agile methods

● Condition● Come up with a proper form of contract for these types of projects

● The event bureau● small, lively company● software for participant interactivity at top management conferences● 1-3 programmers since August 2008

● The energy corporation● large, traditional corporation● software for power plant registration● 3 programmers, from January to September 2009

● The government department● Case management on top of document management system● 3 programmers, from April 2010 to May 2011

Cases - 3 projects in 3 years

Real contract example

● Our contract with The Energy Corporation● A few pages of specification● Agile development process● Low price pr hour● Completion price

A few pages of specification● Scope

● described on a few pages with illustrations● divided into 6 areas of functionality● estimated roughly by vendor to 2400 hours

Agile development process

● Development process described by the vendor ● weekly iterations with● requirements● estimation● prioritization● development● delivery● testing● feedback

Low price pr hour● 50% below normal time-and-material-rate

Completion price● Separate delivery of the 6 areas

● Each area associated with separate completion price

● Total completion price equal to half the total project price if estimate holds

● Completion price is paid when software is put in production

Collaboration climate● Client and vendor help each other with specifications,

testing, IT environment● to complete project earlier and cheaper

● Vendor delivers software early, fix bugs fast● to increase chance of early completion

● Vendor allows clients to change requirements● to ease the clients' put-in-production decision

Negotiation experience● Hard to negotiate with contract manager

● Different views on responsibility, guarantees

● Project owner resolved in favour of the agile contract model

Combine the traditional contract models

paid by the hour

paid at completionTime &Material

Fixed Price

An example project● The application must enable us to do X and Y

● That will take 3 persons for 6 months● Specification and implementation in weekly increments● Pay $100/hour and 2 * $50.000 when deployed to production

payment

effort

● Price for client 174.000

● Hourly price for vendor 234

payment

effort

If we finish 25% early

● Price for client 200.000

● Hourly price for vendor 200

payment

effort

If we finish on time

● Price for client 226.000

● Hourly price for vendor 180

payment

effort

If we finish 25% late

Advantages● Common incentive to finish below schedule and budget

● Cheaper for client● Faster return on investment for client● Higher profit for vendor

● Supports incremental requirement specification

● Supports incremental software delivery

● Encourage collaboration between client and vendor during project

● Client and vendor shares● risks● gains

● Have a clearly formulated product vision

● Can specify requirements incrementally

● Can prioritize features incrementally

● Can test and approve delivered software incrementally

● Can put software into production incrementally

● Will prioritize bugfixing over feature development

The maturity of the client must be high

The maturity of the vendor must be high● Can estimate from high level product vision

● Can deliver frequently

● Can grow an architecture incrementally

● Can do automated regression testing

● Can break down features and tasks in weeks and days

● Will follow the priorities set by the client

Configure the contract

● Increase hourly price● When scope is most important

● Increase completion price● When deadline is most important

paid by the hour

paid at completionTime &Material

Fixed Price

payment

effort

payment

effort

Use time & material for some phases● Early prototyping and experimentation

● Initial estimation

● Maintenance

Discussion

Recommended