Painless Functional Specifications (2000)
joelonsoftware.com
joelonsoftware.com
Thinking about spec before really writing code doesn't work (at least for me).
TLDR is, coding is exploration, it should come before real spec is written.
myconverter input.yaml output.sql
I think a lot of more GUI applications would benefit from them however.