> A software developer's job isn't to make the customer's life better, it's to build the product to spec. You might want the developer's help designing the spec, especially since you should have someone in the room who knows roughly whats possible and whats not, but thats technically a different job.
In a traditional shop, its true that requirements analysis is a different job than development. In many Agile shops it is not; requirements are owned by the development team, which works with the customer to define them.
It sounds like the author of this article wants an engineer to be a product manager, QA department, and software developer all rolled into one. In my experience, this is almost impossible.
Most of these higher level decisions are figured out with management in meetings and pushed onto the engineers. With un-realistic deadlines looming, user experience usually suffers.