Empirically the way you get a product visionary as CEO is for him to found the company and not get fired.
You know your business model is broken when you're suing your customers.
A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen.
Everyone by now presumably knows about the danger of premature optimization. I think we should be just as worried about premature design - designing too early what a program should do.
If you really understand something, you can say it in the fewest words, instead of thrashing about.
It's hard to say exactly what it is about face-to-face contact that makes deals happen, but whatever it is, it hasn't yet been duplicated by technology.