Chapter 40. Users Have Problems, Developers Have Solutions
In the world of software, it is the job of software developers to solve the problems of users. Users present a problem, and the developers solve it. Whenever these roles are reversed, trouble ensues.
If you ever want to see a bloated, useless, complex piece of software, find one where the developers implemented every solution that any user ever suggested. It's true that the users are the people who know what the problem is, and that sometimes, they have novel ideas for solutions. But the people making the final decision on how a problem is to be solved should always be the developers of the system, not its users.
This problem can be particularly bad when you're writing software for a small number of users internally at an organization. The users who you are writing for often have inordinate power over you, by virtue of being executives or being close to executives. They can, quite literally, tell you what to do...