I saw the 2002 edition of The Design of Everyday Things (previously published as The Psychology of Everyday Things). It is a book about how not to design things. All computer programmers, particularly those who design programs with graphic user interfaces should read this.

By graphical user interface, I mean pretty much anything that responds to any user input once the program has been invoked.