Fixed price projects? No, thank you!

November 18, 2010 at 9:23 pm | Posted in Programming, Ramblings | 18 Comments



In IT it is quite customary for a customer to ask several suppliers for a bid on a project. Often he wants a fixed-price bid, which means that functionality, quality and price are all fixed. More often than not there is also a deadline. The rationale behind this approach is that the customer wants to transfer the project risk to his suppliers. Of course this doesn’t work out in reality.

There are many other reasons to dislike this approach. For one, it puts the customer and supplier in an opposite position right from the start. This later on shows in struggles about bugs versus features, different interpretations of the requirements, high costs for even the tiniest change request, etc. To be short: I have never seen this work in the 20 years I have been involved in IT. At best you have a win-lose situation, most of the time it results in a lose-lose for both supplier and customer.

In this blog I will not go into the ethics of fixed-price contracts. Scott Ambler wrote a nice article about that in Dr. Dobbs back in 2007. Instead I will present the results of a simple statistical model. These results will show that right from the start a fixed-price project is set to fail.

This model is based on the following assumptions:

Estimating is difficult. At the start of a project it is easy to be wrong as much as 50 %. Based on accurate requirements that don’t change (!) it is possible for trained estimators to come up with an estimate that is 20 % accurate at the most. And this is only when they can estimate many similar projects. The second assumption is that suppliers over- and underestimate around the real effort that is needed to finish the project. We have modeled this as a normal distribution. If there is more than 1 bid, the customer will select the lowest bid. This may sound short-sighted. And it actually is, but it is also reality. Supply and demand are balanced. This means that suppliers don’t have to offer a lower price when there isn’t enough demand. It also means that they can’t ask high prices for the same reason. All suppliers have the same productivity and hourly rate.

I created a Google docs spreadsheet which generates 500 test-runs with each 10 suppliers. Next I calculated the minimum for every test-run for 1 supplier, 2 supplier, etc. until 10 suppliers. Finally I averaged all these minimums to get a reliable number.

An example: the real amount of work was set by definition to 100. When selecting a standard deviation of 10, an average run of [100 95 92 90 89 99 87 86 85 84] is generated. This means that with 1 supplier on the average the bid will be 100 % of the real effort. With 2 suppliers, the chosen bid will already be 5 % too low, and so on.

The results for standard deviations ranging from 0 to 50 are shown in next graph:

What immediately becomes visible is how bad the situation actually is. Take a typical case where 5 suppliers compete for the same project. Combine this with a standard deviation of 35 (remember the mean is 100). In that case the bid that wins offers to do the project for 60! In other words, 40 % lower than the actual price. No wonder he will end up fighting with his customer after a couple of months.

In my next blog I will drop the assumption that demand and supply are balanced. I will show that an unbalance in favor of the suppliers will have a devastating effect. I will also show that suppliers hardly profit from the opposite situation.

Remember, if anyone asks you to do a fixed-price project: just say no 🙂