October 21, 2004 | John Rusk Do agile processes need flexible contracts? What about fixed price contracts? Fixed Price You actually can use traditional “fixed price” contracts on agile projects. The catch is, they’re not necessarily the best option. Simple Time and Materials “Time and materials” contracts are another option. The customer pays by the hour, with no pre-arranged limit. This works well in some situations, but in others it shifts too much risk to the customer. Agile processes allow a refinement of the traditional Time and Materials contract, to give an approach that’s widely recommended in the agile community. It doesn’t have a recognised name, but I call it “Cancel-After-Any-Phase”… Cancel-After-Any-Phase The customer still pays for the time worked, as in a Simple Time and Materials contract. Unlike Simple Time and Materials, the work is ordered by business value so that the most important features are finished first. The customer has the right to cancel at the end of any phase, receiving the working, tested software from all phases completed so far. I have described the details here. Two-Stage Contract In this approach, the project begins with a “scoping phase” which is covered under a separate contract. The team examines the requirements and technical issues during the scoping phase, then quotes a price for the rest of the project. Target Cost The customer and supplier agree on a target cost. During the project, they negotiate the details each feature — adding some, removing others, and simplifying where possible — always aiming to keep the project within the target cost. The contract is structured so that both parties benefit if project is completed under budget, and both parties suffer if it runs over. (Details here , in pdf format). Here is one way to do it. Target Schedule Similar to Target Cost, but aiming at a specific delivery date instead of a specific cost. Notes These are not mutually exclusive options. For instance, one project may: Begin with a paid “scoping phase”. (Two-Stage Contract), and… Negotiate features to stay within budget. (Target Cost Contract), and… Prioritise work by business value (Cancel-After-Any-Phase) This page explains the key differences between fixed price contracts and the flexible alternatives, particularly Cancel-After-Any-Phase. This page explains why some agile authors say fixed-price contracts can’t be used, but others say they can.