Brandon Savage shares some of his thoughts on software development and how creating the spec for the project affects it by basic it on a rule - the 15 Minute Rule.
Since most developers (myself included) are also generally bad at developing good specs, it becomes even more difficult to create such a rule. However, I heard a great adage from someone recently that I thought summed up how developers can see specs nearly perfectly. "If it takes more than 15 minutes to determine what it is that youâ€™re building, the spec wasnâ€™t done properly".
He suggests that not a single line of code should be developed before the spec is completed and, since developers usually aren't the ones creating the spec, they need to have a clear, concise definition of what's expected before hand.