now speed this proces up a 100 times faster and you've got a programmer in the 'zone' with a 5 page requirement list for a fairly complex project. It won't end very well unless you have very short communication lines for the entire duration of the project (or the programmer is reading your mind)
Yes it's important to create the best possible working environment for a programmer and give them the best information, but in this example the founder / CEO / visionary is actually the scarce resource and the aim should be to get him working as effectively as possible. Six months of his time to learn to program is a huge and expensive (in opportunity terms) commitment when part of that should be picked up by the programmer spending time filling in the gaps.
It's not how you get the most out of the programmer that matters, it's how you get the most out of the whole team and sometimes that's going to involve individuals having to work in ways which are to them non-optimal.