The Design of Everyday Things

This book is regarded as a classic in the field of design but it should also be regarded as such in Software Engineering as usability is one of the key features that distinguishes truly great software.  This book discusses designing objects to be truly intuitive to use, which does not just happen during production (at least not very often).  Despite being written in the 1980′s this book is as applicable today as the day it was written, especially to software interface and interaction design which is often so poorly thought out (if indeed it was ever thought about in some products).

Making intuitive user interfaces should be one of the main goals for software developers but tragically it is so often an after thought even though usability is such a strong driver of sales.