Big companies that want to use our software but don’t want to use our standard EULA keep sending proposed sales contracts that include a really peculiar provision. The provision asks us to guarantee, to represent, to warrant and all that stuff something which everyone knows is false: that our software has zero bugs or errors. So now I need a disclaimer: this is just some ruminating, no offers to sell, representations about anything, warranty or representation, no pledges, no sacred trusts or secular trusts, no nothing is promised here – and I’m talking strictly for myself, not for any company, union, secret society, religion, political party, or other institution or group of any sort.
They are not asking us to say we don’t know of any problems or that we have made efforts to limit them, they are asking us to guarantee as a matter of contract that our code is perfect. Our software is pretty good. It’s tested well beyond what we see as the industry norm, written by experts, and designed to be testable and rugged. But it’s not perfect. In fact I cannot imagine a single type of engineering for which such a guarantee makes sense.
There is a good reason why the Deming Wheel is a wheel and not a straight line: quality is an iterative process. Engineering is hard. Software engineering suffers from both the staggering complexity of software objects and the immaturity of the field. It’s worth another post on why software is so tough a problem – to me, it seems to be more about the complexity of the interfaces than anything else. We have deliberately designed and developed so that an upfront investment in quality can reduce support and modification costs. And experience validates the method. But free of errors? That’s a ridiculous demand, but an interesting one
What prompts the demand for guarantee of zero defects? It’s easy to suppose that ignorance is the cause, but that seems dubious because you’d think ignorance like that would be rapidly corrected. It may just be a pure power play by big companies who want to be able to hold a threat over vendors, but my sunny nature makes it hard for me to imagine that people are so nasty – well, it may be true. A third, more likely possibility is that the demand is a symptom of the disordered incentives of large firms. The interest of the firm is to balance closing the deal rapidly, with getting a good price, and with avoiding legal risks and the risk of vendors who might fail to deliver or make unreasonable demands once the firm becomes dependent on the product. But the incentives for the people who generate and negotiate contracts in a big firm often are weighted only on the last risks. If the deal happens and the vendor disappears after entangling the purchaser in an ugly IP lawsuit (and how often does that happen?), the people who structured the deal for the purchaser will look bad. But if the deal never happens or takes a long time or bloats costs, they can’t be blamed. Indeed, for the outside counsel generally brought in to this type of deal, that means billable hours and no risk at all. So the part of the business that actually carries out the core functions of the firm becomes weighted down with people who have every incentive to prevent them from succeeding. This seems to happen in many large firms where internal signals drown out any data about customers, revenue, and all that other minor stuff.