Kent Beck postd this to the XP-ML.
I don't have a sample contract. The times I've worked this way the contracts
have been verbal, not written.
There were some comments about what to call these contracts. One analogy I
found with the help of Greg Betty at Intelliware is "target costing". Target
cost product development starts with a target cost (a $400 digital camera,
for example). From that you can figure out how much you can pay to
manufacture the product. The goal is to pack as much functionality as
possible into the product given the price, either by reducing the cost of
components or the cost of assembly. This process is called value
engineering. I think Bill Wake's ideas about unbundling point to an
effective way to do this in software development.
You could write a target cost software development contract by specifying
how much the contract would cost, along with the quality levels/practices
and the process for choosing scope. The difference between fixed cost and
target cost is that fixed cost contracts imply that the scope is fixed,
while target cost contracts explicitly float the scope. One thing I like
about target cost is that choosing scope is a value-added activity where
choosing scope in fixed cost contracts is a transaction cost (the principle
of opportunity at work).
Kent Beck
Three Rivers Institute