HW23: Chapter 22

05 Nov 2019

22.6. Fixed-price contracts, where the contractor bids a fixed price to complete a system development, may be used to move project risk from client to contractor. If anything goes wrong, the contractor has to pay. Suggest how the use of such contracts may increase the likelihood that product risks will arise.

The major issue with any contractor bid job is that it literally goes to the lowest bidder. The software will have to be developed on a shoestring budget, with the absolute minimum in terms of resources. Moreover, the relationship with the client is almost inherently contentious; they want to pay the least for what they can get, which will color all interactions because they will naturally feel like maybe they could have paid even less - whereas you, the contractor, will feel like you’re being wrung dry.

By making a contract fixed-price, it creates additional pressures. The exact final cost of the project has to be estimated perfectly. Since any failures, mistakes, or complications have to be eaten as expenses to the contractor, the base price of the bid has to be high enough to account for this risk factor. But by placing so much weight on an accurate estimate, there is a human instinct to round down on the costs, especially when trying to win that contract. So mistakes won’t be in the budget. This method might work when a unicorn project has no issues, and it might be okay if your planning (and estimates) are exactly perfect. And, for startups who don’t care about the quality of life of their developers, and who are happy to make 80 hour unpaid workweeks to get the project done, fixed-price might seem like a magic ‘I win the contract’ button. But in the all too common case where initial estimates are optimistic to the point of unrealistic, a fixed price contract could literally put a contracting company out of business.

All of this translates to extreme pressure on developers if (and when) they run into challenges. There is a significant likelihood that, when a challenge occurs that doesn’t fit within the strict budget and tight schedule, it will not be handled properly, but will instead be ‘mitigated’ and moved on from. Which translates to a software, in the end, which is held together with scotch tape.

Ultimately, this practice, like many others, is an outcome of business people making decisions from a purely capitalistic point of view, ignoring the human cost. And it’s successful, because people will almost universally let themselves be exploited. In the words of Joan Robinson, “The only thing worse than being exploited by capitalism is not being exploited by capitalism”. We’re the resource that’s being exploited. These contracts are just the mechanism by which the environment to do so is fostered and fomented.