From that Typicalprogrammer article, in which Greg Jorgensen comments on Joel Spolsky’s article on five ways to make a software project fail:
The detailed plan for a non-trivial program is as complicated as the program itself. If every problem is solved enough to estimate the code in hours, if every logical module is described, and if every contingency is anticipated and planned for, the code will almost write itself.
Rings very true with a presentation given at BaRuCo this year by Paolo Perrotta, i.e. the code IS the blueprint, not the specification, as detailed as it could be. And the act of building software is the compilation step (which comes for free in our world), not the process of writing the code.
I’ll update this article once the recording of the talk is available.