
Again and again I am asked (or feel forced) to explain why agile software development fits nicely with fixed price contracts. Some people still think that a fixed price contract requires a detailed up-front requirements study, to accurately calculate the costs of the project. But that's not correct.These are the arguments that I use frequently:
- Among all the requirement studies that I have seen (for fixed price contracts), I have never come across a proper description of the final product, as it has been delivered to the customer. It appears that, in all our software projects, customers change their minds, and we are simply expected to accommodate for that. Therefore, a detailed requirements study is not the best way to calculate the costs for a fixed price project. It turns out that the details are simply never correct! In fact, it might be easier to base our fixed price calculations on the weather, as it is more predictable than our customers.
- A fixed price contract requires only that the scope of the project is constrained so that we are confident enough to carry the risks. You don't need to know the exact length of the third field on the fifth input form on page 283 to do proper risk management. A simple set of high-level requirements is usually sufficient to reduce risks to a manageable degree. We just let the customer know that we're estimating two days for that ordinary customer contact form that he so desperately wants in his product. (And this form is highly unlikely to cost us more than four days.) That's all you need to know when signing the contract.
- For fixed price projects it is essential that you are able to constrain the scope (even more than with time-and-material contracts). With changing requirements (which are a fact of life) it is best not to have detailed requirements. From a psychological viewpoint, it is much easier to throw away old requirements, replacing them with new ones, if you haven't wasted time on any details. Oh, you also want a FAQ list in the product? Fine, but we won't have time for the contact form then. Is that ok with you? We couldn't care less, because we had only spent 30 seconds on the requirements anyway...
- If you agree on a fixed price contract using high-level requirements (like user stories), you retain the option of negotiating the details of the requirements. If the details of user story A cost you more time to implement than you had expected, then you have the option of implementing user story B later in the project using the simplest interpretation possible. Yes sir, we understand that you had expected the contact form to include support for smileys, mime-attachments and spell-checking. But the import of your product catalog over a 14.4k modem from the backside of the moon cost us more effort than we had expected. (And we're still delivering according to the minimal specifications.)
For time-and-material contracts, working with user stories, or some other form of high-level requirements, is the smart thing to do. Many agile experts have already explained this a zillion times. But for fixed-price contracts, fixing the scope using high-level requirements, and not detailed requirements, seems even more crucial to me. The need to throw away old requirements is much higher, and detailed requirements do not enable you to re-negotiate the work that is involved to implement them.
Bookmark/Search this post with:
Comments
A fixed price contract requires a fixed price
September 17, 2008 by peterstev, 3 years 19 weeks ago
Comment id: 1851
Do you have any examples of successful fixed price projects? How do you negotiate it? Did it, or better how did it come to a successful conclusion?
When the customer says "fixed price project" what he means is fixed price *and* scope. The goal is to shift the risk to the supplier. But this creates a non-trusting relationship between customer and supplier. As soon as the contract is signed, the game starts: what's in scope, what's out of scope? A whole industry is now based on low-ball bids and negotiating profitability through change requests.
I once had a project in which the customer asked for an estimate. We came back with 100 to 120. The customer said, "I have 80". We agreed to start work -- after slashing the scope to the bare minimum. Finally, the project was finished for about 90 (additions which the customer wanted, things we hadn't thought of, or dare I say, change requests). But what got us to success what the intense and constructive cooperation between between customer and team. The customer fixed the price (almost); the scope was targeted to hit the price.
Cheers,
Peter
Not fixed scope
September 17, 2008 by JurgenAppelo, 3 years 19 weeks ago
Comment id: 1852
Yes, customers sometimes *think* they are asking for fixed scope. But in reality this never turns out to be the case. That's something we have to explain.
However, with an initial set of high-level user stories, it is easy to give the *illusion* of fixed scope at the time of the contract. And later in the project, the customer is only too happy to notice that we still allow changes to that initial set.
All our projects are managed that way. And you're right that it requires constructive cooperation. But that's no different from any other agile project, is it?
Sorry but that doesn't work
October 20, 2008 by governmentsupplier (not verified), 3 years 15 weeks ago
Comment id: 1924
Let's say your fixed price & fixed scope project has a User Story "As an authenticated normal user, I want to be able to search for products in the webstore".
That's a pretty high level requirement. The problem is, that the customer may think of super-Google with all sorts of gadgets while developers might think of some simple MySQL based fulltext-search. The story point estimate can be way off. And since it's a fixed everything project and the customer is always right, you are screwed.
The only reasonable way from Suppliers point of view is to minimize scope and promise as little as possible for the fixed price. And explicitly define what you promise. Everything else falls outside the fixed price scope and is billed on time & materials basis. You can still deliver what the customer actually needs.
It works when applied properly
December 10, 2008 by FixedPricer (not verified), 3 years 7 weeks ago
Comment id: 2102
I do a lot of fixed price development, but the fixed price is tied to specific tasks/deliverables, not the final product or the complete project. This forces the client to deconstruct the project in defineable components. If I know what they want *and* they know what they want, fixed-price can work.
Post new comment