Thinking About Design

I should be doing a little functional programming in my spare time, but summer holiday has arrived and I’m entitled to relax. So now for something completely different.

I’m nurturing a growing interest in user interaction design and graphical user interfaces. This is largely due to my current workplace; at Favourite Systems we create a cool new user interface for mobile phones. So, our in-house technology is very visually oriented, and some of my past and present colleagues are quite talented in visual design.

I, however, am not. To put it this way: when I see an awful user interface like, say, your average Linux application GUI, I think: “That looks like something I could’ve created myself.” No, that’s not a complement.

I also like many of Apple’s products, specifically for their focus on strong product design.

Inspired by all this, I’ve started thinking more actively about visual design and user interaction design over the last year (in addition to design as applied to software engineering, which I have more experience with). So I recently bought Universal Principles of Design - mainly to do some light reading during the summer.


I quite enjoyed this book. Reading it was a pleasantly different experience from the sometimes dry and/or dreary CS textbooks I usually chew my way through.

The physical book itself is aesthetically very appealing. One principle is detailed per two page spread. The left page provides a textual summary, while the right page contains visual examples - sometimes strikingly interesting ones. The book is a case study in the principles it discusses; examples include Consistency (two pages for every principle), Golden Ratio (check out the cover depicted above), Legibility (every page has a nice clean feel), and Signal-To-Noise Ratio (very little of the material felt like “padding”).


The book introduces the reader to exactly one hundred general design principles. They areĀ  discussed with examples drawn from a wide range of applications in architecture, graphical design and software GUIs.

Some principles seem applicable mainly to specific fields (Prospect-Refuge, to pick one, appears specific to architecture). Others are more obviously general across several fields (Redundancy, Prototyping and Flexibility-Usability Tradeoff are examples of principles used in both industrial design and software engineering).

I’m hardly the first to point out the overlap between design and craftsmanship in software engineering and other disciplines such as graphical arts. I do however find this interesting to think about, and this book helps you do exactly that.

Interestingly, though reading this book was prompted by thinking about software and user interface design, I now also find I want to attain at least a sliver of competency in graphical design. I actually really enjoyed drawing as a kid, both on paper and electronically. Unfortunately, I gave that up sometime before Deluxe Paint went out of fashion. I really should pick up that thread again sometime.