Here's another idea. Instead of saying that the only way someone could possibly communicate with a developer is on the developer's terms by learning to program, why not employ developers who can communicate with non-developers?
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.
I suppose it depends on the main expenses of the companies, optimizing programmer workflow is a very good idea in a tech-centric environment because its a major part of your operational costs. However, if the quality of the technology is not an important business driver then I suppose you can afford to be average about it.
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.