One my favorite software books is The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper. It's an attack on "dancing bear" software, all those products which do something we need in the most obnoxious way possible. He blames this on how programmers focus on the pure technical problems with no understanding of how a non-technical user will react when confronted with their creation. Marketers don't help because they only look at the needs of raw beginners. So the majority of actual users--someone who's been wrestling with the program for a while to get something done--are ignored in the design.
(Why it's broken, how it got that way, and how to do it right from now on)