If you are involved in designing, programming or buying software, I recommend you to listen to the podcast episode linked below. It gives a very good insight into what's wrong with most software products today. I haven't read the book, but you can buy it through the podcast page.
IT Conversations: David Platt
What is the most important thing to the average computer user? They want their machine to "just work". Why does Google know how to correctly translate a United Parcel Service tracking number, while the actual UPS website requires multiple entries just to get to the point where the tracking number can be entered? Programmer David Platt is the author of "Why Software Sucks...and What You Can Do About It". He discusses his findings with Phil, Matt, and Scott.
David Platt's blog Suckbusters gives more examples of good and bad software.