The author argues that specifications don't need to precede implementation; rather, programming itself is how developers discover what they actually want. Building on research by Paltenghi and Chandra, the author proposes a workflow where you prototype first to learn requirements, then extract and formalize the specification, and finally regenerate code to validate it—a process now feasible at scale with AI.