The problem with fixed price

You are being ripped off!

We often hear people talk about fixed-price contracts as a way of reducing risk. People perceive that fixed price work means that somehow you'll get exactly what you asked for. Technically this may be true but it comes with some caveats and assumptions.

Fixed price means fixed scope

If you get a quote for some work be done you need to provide all the information possible upfront to get the work done. The agency will then quote for that scope of work. This makes the massive assumption that you know exactly what you want and how you want it done. This can work in some scenarios e.g change the background colour on my site to blue, make the font bigger etc. In essence, you need to lock down exactly what you want in a contract which means that the person who writes the contract is dictating the scope and the design, which means ...

The risk is all yours

Because the scope is fixed it means that the risk is yours, not the agencies. You can imagine the come back "but that's what you asked for!". This is when relationships start to break down, misunderstandings happen and sometimes people start getting litigious with each other. Let's say that you do manage to persuade the agency to "fix" the work. They'll be doing it a loss, do you really think you're going to get the best from them? Something will inevitably give, corners will be cut, quality will slip, mistakes will be made.

You can have fixed price but not fixed scope

Why are you talking to a software consultancy? Because you're not an expert at this. You understand your requirements but not the scope. You want some high-level problems solved within a fixed price and budget. The thing that will change is the design of the solution. The responsibility for the success of a project should lie with the people designing system (the software consultancy) and not the person writing the contract (you).

Can you do fixed price?

You need to find a software consultancy that you believe will be able to deliver what you're looking for. You then need to provide some high-level requirements, not a detailed list, but a broad idea of what you're looking for. Then the software consultancy should be able to know if your budget is reasonable and achievable. They may not know exactly but they should have a rough idea as to whether they can meet that goal.

How do you reduce risk and costs?

You ensure that the software consultancy you're working with delivers working software on a regular basis. This could be on a per-feature or on a fixed schedule (think weekly not monthly). It doesn't matter what you agree upon so long as it's small incremental change. Pay the software consultancy for time and materials on a monthly basis. This will keep your relationship open and honest, the team you've hired will definitely be working on your project if you're paying for their time. If things aren't working out then terminate the contract with one month's notice. Let's say you have a budget of £1.2m, the consultancy charges £100k per month and you've agreed to 12 months work. After the fifth month, you realise that what's been produced is good enough for what you need so you cancel the contract. You pay £600k to the consultancy, you keep everything that has been produced so far and you save yourself £600k in the process.

Summary

Fixed scope means fixed mindset which leads to bad behaviour. You don't need the bells and whistles, fixed scope contracts force you to specify everything you could possibly want. You don't want to spend time and budget on features that cost more than the value they add. Therefore you should stop development when the cost of continuing exceeds the benefit that you receive.

References:
(http://www.infoq.com/articles/agile-contracts)
(http://codebetter.com/darrellnorton/2005/04/22/fixed-price-contracts-in-an-agile-organization/)
(http://sites.google.com/a/scrumplop.org/published-patterns/value-stream/product-backlog/change-for-free)
(http://www.leanessays.com/2002/04/righteous-contracts.html)