Articles   Home

Software Design Reference Books

Design is hard work. I have seen brilliant designs, mediocrity and horror shows. Like the doing of many things, a review of what others think about the topic can improve understanding and give a framework of reference to a problem.

Here are some references I recommend for design of almost anything, not just software. I use these references for database design, software application design, web design, any design, but the principles of design and analysis of humans in these books seems to apply to a much wider venue than just software.

Donald Norman "The Design of Everyday Things" Also known as the teapot book, this is the guy who figured out why some things work and other designs do not. This guy does not limit himself to software but shows how basic principles of usability affects the design of everything.

Gary Klein "Sources of Power" analysis of how people think and act effectively, alone and in teams. It is a good book on how thought and action affect usability of design and problem solving in general. Also has information on designing field studies of problem solving which I find useful for basic design of something, the testing of the usability of a design and even the management of project teams.

Christopher Alexander "The Timeless Way of Building" and a bunch more books including "A Pattern Language". This is the architect that popularized the concept of a pattern language of design. The concept has crossed many disciplines and is applied in object oriented software design and other areas. Unfortunately his website, http://www.patternlanguage.com is a horror show of bad web design.

Bruce Schneier "Secrets and Lies." Analysis of security that can be applied to almost all areas of software and other security situations as well. I find the his technique of constructing simulations a useful technique for other design uses as well. The simulations echo what is said in Gary Klein's book about problem solving.

The following references I use to help the usability of the designs I make or others have made. I also use the findings described to review designs for specific projects.

Jakob Nielsen http://www.useit.com has years of free useful columns on internet usability. And a bunch of books and papers that cost a bunch.

Steven Krug "Don't Make Me Think" The quickest and clearest book on web design and usability out right now. He cites Gary Klein for his view of how he designs web applications.

Paco Underhill "How We Shop", "Wie Kaufen Wir" (German translation) Another form of usability (retail shopping) and a good read for designing field testing of designs and usability.

After reading these and other books design is still hard work. It can only be done by designing stuff and more stuff and verifying the designs. Just being able to explain a design decision to myself helps my efforts and these books give me reason and structure for my designs.