Natural language is full of nuances and implicit cultural and domain specific connotations. LLMs work because they have been trained on massive corpus of materials that encode some (but not all) of those hidden meanings.
With specification driven development, the prompts need to be very detailed in order to produce exactly what is required.
Yep, LLMs work to the degree you don’t care shout the choices made. That’s why it’s great for demos and starter templates.
But for mature software eventually every single detail matters.
After reading this essay, I wonder: what if program code was withheld from training data? Then how useful would LLMs be for programming?
Humans also work because they've been trained on a massive corpus of materials, spanning like an average 15 year period or more. And humans too need to be prompted, sometimes everyday, with meetings and whatnot to produce exactly what is required.