The Design of Everyday Things, by Donald Norman. It's a cracker, I'd recommend it to anyone to have a read.
The main message that I took from the book is that when you interact with an object that someone has designed, if your interaction with the object goes wrong again and again, it's not your fault. The fault is with the designer of the object, who clearly didn't put enough effort into designing the human interaction or listen to feedback from users of the object.
As an example, take my microwave oven. One easy-to-understand concept of ovens is the hotter it is, the quicker it performs its function. Linked to this easy-to-understand concept is another, namely that the higher the number the hotter the oven: Gas Mark 6 is hotter than Gas Mark 4; 210°C is hotter than 180°C; 850W is hotter than 650W.
My microwave oven has a grill function built in, so when I fancy cheese on toast I fire it up. The power options available for the grill are 1,2 or 3. Given the convention, 3 is higher than 1, 3 must be the hottest. It must be, that's the convention. Wrong. My cheese on toast, instead of being melted bubbling cheese on piping-hot toasty bread, is sweaty slightly-warmer-than-when-it-went-in cheese on lukewarm toast.
Apart from using a set of numbers that are counter-intuitive, there's another way I could understand what power I'd selected; the designer could have used the LED screen to display "LOW", "MED" or "HI", depending on the number of button presses. This would give me instant feedback of what my repeated button presses were likely to make my cheese do. As Donald Norman would say, it's knowledge in the world as opposed to knowledge in the head; there's should be no reason for me to remember 1=high and 3=low.
The niggly grill power issue annoyed a few times until I came up with my own solution - I added a label next to the grill power-select button. (See image above).
I thought my days of being annoyed at the stupidity of the microwave designers were over until tonight. We decided we'd have jacket potatoes as part of our dinner. The oven was hot with a pie in it, so I thought we could cook the potatoes in the microwave and crisp them up in the oven. 10 minutes should do it. This leads me to another convention that I've learned with my microwave; the number of minutes you want to cook things for corresponds exactly to the number of presses of the "1 min" button; a can of soup is 2 minutes (2 presses), remove to stir, 2 more minutes (2 more presses). A microwave dinner is 6 minutes (6 presses). Jacket potatoes, 10 minutes (10 presses). No, no, no.
It turns out that if you want 10 minutes, you have to (not "can", but "have to") press the "10 min" button. After 9 presses of the "1 min" button, the LED screen shows "9 min". The next press, which I would expect to make the screen show "10 min", makes the screen show nothing. It completely ignores the fact that you've pressed the button 9 times already. Instead of cleverly [intuitively?] adding another 1 to the number of minutes cooking time and displaying 10, or even ignoring the next press of the 1 button, it has been programmed to erase any memory of the previous button presses.
As Donald Norman says, it's not my fault. It's the fault of the engineer who learnt the interface during design and testing of the microwave, and didn't bother to send it out for usability testing...