The best spec is code
Also called Plan through code
The opposite position: write code early, because code that runs answers questions a document can only guess at. A working version or a prototype becomes the description of what you want, and anything written comes after.
Our reading, and only ours: code wins when running it shows you the answer, one person is deciding, and throwing it away is cheap. A written spec wins when being wrong won't show up on a run, as with money, when several agents must build to one thing, or when nobody will read the code.
“Don't write a plan yet. Build the smallest version that runs, in a scratch folder, and show me what it does on these three inputs. We will decide what the real one should do from that, and then write down what we decided.”