Can you use agile processes with traditional fixed price contracts, contracts where both scope and price are specified up front?

Yes, you can use agile processes on fixed price projects.

For instance, Crystal Clear was developed and tested on fixed price projects:

“Unlike most of the other authors of the Agile Development Manifesto, I came to the agile principles through the need for efficiency, not the need to handle rapidly changing requirements.” — Alistair Cockburn, in Crystal Clear (emphasis added)

“Efficiency” is about making software rapidly with good quality.  On a fixed price project, speed and quality are exactly what you need!

Like other agile methodologies, Crystal Clear does include techniques for  handling changing requirements.  But you don’t have to use those techniques!  It’s perfectly acceptable to fix the scope up front, and then use the rest of Crystal’s techniques to deliver the software on time.

What’s the Catch?

Under a fixed price contract you may not get all the benefits of agility.

Firstly, while agile processes improve developer productivity, some contracts may limit the productivity gains.  The limit is not a direct consequence of fixed price and scope; it results from the “waterfall” mentality implied by some contracts.  For instance, compare these agile techniques with your typical fixed-price contract.

Secondly, agility allows the team to change direction, for the better, when the opportunity arises.  (E.g. a beneficial change, either to technology or functionality, is identified part-way through the project.)   Such changes are harder to make under a fixed contract.

How to Decide

If a fixed price contract is mandatory, as is often the case in government circles, here are some things you might like to consider:

  • Firstly, does your project suit an agile process?  (Some don’t.  For instance life-critical software is a poor candidate for most agile processes, since they don’t take verification and testing to the levels needed when life and limb are at stake.)
  • If your project does suit an agile process, choose your agile methodology carefully.  Some may fit fixed price contracts better than others.  For instance, most advocates of Extreme Programming (XP) favour flexible contracts, while Crystal Clear was created under fixed contracts.
  • Remember that its safest to choose your supplier by capability, not price.
  • Finally, bear in mind the downsides of traditional contracts, and try to avoid as many as you can! 🙂

Further Reading

Many Agile authors assume the use of flexible contracts for agile projects, most notably Martin Fowler.  I’ve discussed his views here.

References

Comments from Alistair Cockburn in the on-line Crystal Discussion Group and in Crystal Clear.