This sounds painfully familiar:
I was talking to a programmer today who works for a business who does business software development for a large client. Their process is that the client sends a requirements document, they go back and forth a few times to sort out some detail, and he codes the software or enhancement.
He never, ever sees a user, does not know who they are or what they do. The client has some user contact, but it is limited, and he has never spent time watching how people go about their day to day work. The requirements that are documented are very basic and never describe any more than the bare bones of what they want done.
I simply cannot imagine how this process could create anything even semi-decent.
In my experience, the closer a developer can get to the user, the better the resulting product. It’s very simple and it’s hard to understand why management sometimes just doesn’t get it.