Software engineers are out of focus. The focus is not the code, the focus is the end users. Great code that functions without logic (most of MSFT) is generally useless. Users should not have learn to a new vernacular nor change their logic use patterns to use a new software. Software that fails to reach users without extensive documentation is useless no matter how great it is.
Users should do the dreaming; software engineers should be limited to "making it so".
Moral to this article: anyone who can write prose can write code....