As a developer, very few things irk me more than seeing software that was designed by people who either don’t know or don’t care about how the users will interact with the software. This can be seen in many programs, from useless or confusing error messages (Eg. BSoD) or unintuitive interfaces that have no consistent tab-index and confusing labels. It annoys me especially because it makes us all look stupid & generally reinforces the image of the computer nerd as being someone who has little or no contact with The Real World™.
Taking the time to look at your software/website from the user’s perspective is absolutely critical if you want people who use your software to praise your name, rather than issuing a plague o’ both you & your company’s houses. This issue was brought up to me again recently while I was trialling a copy of Microsoft SQL Server. The trial version has a (fairly impressive) 120-day trial period. This is fine. However I get in to work one morning & the site that I’ve been developing to try out the software won’t load, complaining about the database connection failing. I check the SQL Server Agent & the server is in fact not running. I attempt to start it again, but it won’t. No error message, the agent just tries to start the program then reports that the server isn’t running.
Really helpful.