Every check has a cost. For example, consider the case of making suppliers verify their solvency. Surely that’s mere prudence? But in fact it could have substantial costs. There’s obviously the direct cost in time of the people on both sides who supply and check proofs of the supplier’s solvency. But the real costs are the ones you never hear about: the company that would be the best supplier, but doesn’t bid because they can’t spare the effort to get verified. Or the company that would be the best supplier, but falls just short of the threshold for solvency—which will of course have been set on the high side, since there is no apparent cost of increasing it.
Whenever someone in an organization proposes to add a new check, they should have to explain not just the benefit but the cost. No matter how bad a job they did of analyzing it, this meta-check would at least remind everyone there had to be a cost, and send them looking for it.
If companies started doing that, they’d find some surprises. Joel Spolsky recently spoke at Y Combinator about selling software to corporate customers. He said that in most companies software costing up to about $1000 could be bought by individual managers without any additional approvals. Above that threshold, software purchases generally had to be approved by a committee. But babysitting this process was so expensive for software vendors that it didn’t make sense to charge less than $50,000. Which means if you’re making something you might otherwise have charged $5000 for, you have to sell it for $50,000 instead.
The purpose of the committee is presumably to ensure that the company doesn’t waste money. And yet the result is that the company pays 10 times as much.
Take a look!
PS: I do not know if it some kind of pep-talk to programmers that Graham is attempting when he says
Programmers are unlike many types of workers in that the best ones actually prefer to work hard. This doesn’t seem to be the case in most types of work. When I worked in fast food, we didn’t prefer the busy times. And when I used to mow lawns, I definitely didn’t prefer it when the grass was long after a week of rain.
Programmers, though, like it better when they write more code. Or more precisely, when they release more code. Programmers like to make a difference. Good ones, anyway.
but, good lawn mowers and fast food joint workers might also prefer the longer grass and busier times! I at least knew of one example for each of these categories.