Why specs matter
April 23rd, 2005
Being an XP type, I don’t go in for specs for everything. Where interoperability counts, specs are key… and Mark Pilgrim nails the personalities in Why specs matter.
“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 to feel better about themselves.


I can definitely relate to the article. I have experience with both specifications and XP/TDD. I see this issue as largely manageable. A good spec should have lots of use cases. Use cases can be directly translated into functinal and/or unit tests.
You still have the asshole/moron issue, but shouldn’t the spec writer be more thoughtful and careful? Does thinking that way make me an asshole?
In XP, you don’t need a 100% complete spec, because you’re working directly with the customer the whole time. Basically, *all* specs will have loopholes and flaws, and that’s why just getting it down on paper is no substitute for direct communication.
If you’re trying to write specs for interop with some outside party, it’s good to hammer out as much of the ambiguity as possible, but you’re still going to have to have some channels of communication open.
Mark’s point about the morons and assholes is probably still a good assessment of the personalities involved, though.