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 Edit.app, 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.

 
12
Kudos
 
12
Kudos

Now read this

If you don’t have the right language in your data model, you’ll never be a Macher.

It turns out that having language to describe something in a nuanced way really does promote discovery and discourse. Creating good names for measures and patterns lets you describe things quickly and efficiently. The better your... Continue →