Sung to the tune of ‘Regrets, I’ve had a few…’
Dare Obansajo works at Microsoft. His blog is full of strong opinions on software development, among other things. His post on specs in general and ATOM in particular was compelling. I have partially followed some of the RSS-ATOM ‘discussion.’ It was more the general thought Dare expressed here which found me nodding my head.
Every one of them [specs] contains contradictions, ambiguities and lack crucial information for determining in edge cases. Some are better than others but they all are never well-defined enough. Every spec has errata.
You can’t capture the world in a written document. Or, if you can, you’re usually too slow in delivering to affect the market. You don’t learn what the edge cases are until you and, more importantly, others start using your product or service. Nothing against specifications, which I’ve written (well and otherwise), but you have to know their limitations, or you fall into description paralysis, akin to analysis-paralysis. Edge cases do matter, but you have to put your stake down somewhere to define a center before you can find the edge.