Why Specs Matter
notes date: 2019-04-08
source links:
source date: 2004-08-16
Most developers are morons, and the rest are assholes. I have at various times counted myself in both groups, so I can say this with the utmost confidence.
Assholes
- Assholes read specs with a fine-toothed comb, looking for loopholes, oversights, or simple typos.
- These people are good to have around while writing a spec, because they can occasionally be managed into channeling their infinite time and energy into finding loopholes before the spec is final.
- This is why writing good specs takes so long: most of the time is frittered away on asshole management.
Morons
- Morons, on the other hand, don’t read specs until someone yells at them.
- someone points them to the sentence in the spec that clearly spells out how horribly broken their software is, and they fix it.
- There are two factions of morons that are worth special mention
- [One faction:] when they finally bother to read the spec, they magically turn into assholes and argue that the spec is ambiguous, or misleading in some way, or ignoreable because nobody else implements it, or simply wrong. These people are called sociopaths.
- [The second faction:] when they get around to reading the spec, they magically turn into advocates and write up tutorials on what they learned from their mistakes. These people are called experts.
Angels
- “Angels” read specs closely, write code and then thoroughly test it against the accompanying test suite before shipping their product. Angels do not actually exist, but they are a useful fiction to make spec writers feel better about themselves.
Why specs matter
- If your spec isn’t good enough, morons have no chance of ever getting things right. For everyone who complains that their software is broken, there will be two assholes who claim that it’s not. The spec, whose primary purpose is to arbitrate disputes between morons and assholes, will fail to resolve anything, and the arguments will smolder for years.
- If your spec is good enough, morons have a fighting chance of getting things right the second time around, without being besieged by assholes. Meanwhile, the assholes who have nothing better to do than look for loopholes won’t find any, and they’ll eventually get bored and wander off in search of someone else to harass.