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.

Agile Software Development with Scrum

I believe this is the original text on the agile methodology known as ‘Scrum’, and as such it provides more than just a valuable description of the Scrum development model.  It provides the thoughts and opinions of the creators of this lightweight methodology, as well as the benefits to using Scrum, an explanation of why Scrum works and advanced Scrum techniques.  All this in a deceptively small and easy to read form factor makes this a very easy to read book on a development methodology that has been exploding in popularity recently.

I’d highly recommend this book and approach to all levels of software engineers and managers.