Good Design is Rarely Simple and Usually Complex.

When I do something every day I don’t mind a little complexity.

When I do something rarely, I’d like that task to be a simple as possible.

I program every day. Sublime, my text editor, is pretty complex. Even something basic, like using spaces instead of tabs, is an effort for me to find. In order to figure it out, I might dig through the menus, the help and even the google. But I love Sublime anyway. Sublime’s complexity works for me because it can do all thing things I might want it to do (and much more). It does come a cost (my time to figure out out).

I’m not willing to go to something simple, like OSX Text, because the features are simply too basic and can’t do the job for me.

On the other hand, system preferences on OSX are pretty simple (as opposed to say trying to do the same thing in the unix shell). For the most part, I can figure out how to do what I’m trying to do through dialog boxes. There is plenty I can’t do from here (configure the firewall to block specific IP addresses for example), but that’s ok, I’d rather have it simple.

In my opinion, both pieces of software, though very different, are well designed.

When designing software, we try and think about this use pattern.

We measure where our users are spending time to help figure out where out application will tolerate complexity and where it should be simple. When users are spending lots of time in an area, then maybe investing in more esoteric features is ok. Where users need to rarely visit at part of the app, we should strive to be simple and very careful with our UI.

Both simplicity and complexity have their place.


Now read this

Great Software is an Act of Empathy

“Who ever wrote this software had me in mind when they wrote it, and they must love me.” I first had this experience programming on CPM way too long ago. At that point in time you had a couple of choices in trying to write programs that... Continue →