Why Software Doesn’t Work in 14 Words or Less
8 Feb 2002 / The ProgrammerThis is Weinberg’s Zeroth Law of Software: If the software doesn’t have to work, you can always meet any other requirement.
The last two development projects I’ve worked on had one thing in common: We charged the client a pile of money and delivered basically nothing of any utility.
Another way to look at it: We met all the requirements by delivering software that didn’t work.
In one case, the client was big enough and flush enough to be able to weather a multi-million dollar misadventure and remain solvent.
In the other case, the client was a dot-com startup, wasn’t able to take the pounding, and had to go out of business.
That summarizes my recent contribution to the software industry.
Mediocrity is Seductive
The quality of the work being done at our shop — and at many other shops — is very poor, our project success rate is approximately 0.0 percent, the tools and techniques we’re using have been proven not to work, at least in the way that we’re using them, and yet any suggestion that we might want to try something different, with an eye towards improvement, is met with incredible resistance.
Why is that?
Well, I have to admit that even I feel a certain comfort level from the abysmally low expectations we’ve established for ourselves, both internally and on the part of clients.
The fact that no one really expects the software to actually work is, as Weinberg’s Law predicts, an incredible simplifying factor.
Clearly we could do better, but there might be some actual effort involved — and since no one expects better anyway, why bother?
Thus spoke The Programmer.
Related Links
- High Failure Rates on the Web
In what sense can something be said to “work” if it fails 35 percent of the time?