The Problem With Configurability

I've recently been experimenting with a few hand-picked desktop utilities, but I am rapidly reaching the point of diminishing returns: the effort required to run and maintain all these utilities is greater than the productivity benefit.

This is a companion discussion topic for the original blog entry at:

You’ve also described what I like about the OS X interface. A lot of people complain about it’s “hand holding” or the fact that you can skin it easily or configure lots of things. But I like that. In fact a lot of the custom apps I run on my Windows workstations emulate some of the default apps and settings that my iBook has.

Less thinking about the UI means more thinking available for whatever project I’m working on.

Roberts last point was exactly what I was going to say: default configurations that are lame force every user into self configuring. However, I try to create a usable default and add a few very selective configuration options. Not gratuitous options like being able to change all the colors (even though a lot of users really like that…) but more like over all behavior or color coding key sections. But your story about working on somebody elses tricked out VS.Net…I hear you. I worked in a paired programming shop and we had these two jokers that loved to mess with key combos…drove us crazy…

A slighlty more friendly strategy is to be not easily configurable. Take RoR, for example: there times when the conventions don’t work (think legacy database). So you can configure it - you just don’t have to and the defaults work fine most of the time.

Some people do really need configurable environments. Take key mappings, for example - they sort of assume you have the use of both hands. Someone with only one hand might prefer a key mapping that doesn’t involve waving his or her arm over the keyboard all the time.

However - your default configuration should be usuable enough for most people that they don’t need to change it.

It would be even better if every application had the ability to export and import any settings from a generated file. Then, one could simply transfer a quick file on their keychain USB fob and get on with their life.

Looks like VS2005 does exactly this.

what really sucks, is when programs use the color scheme from windows (I have yellow text over green on my menu items)… but only part of it. ending up with ugly why xpstyle menus with yellow text.

Assumptions suck.

At the other end of the spectrum, you have a car where the seats don’t go forward and back, and a steering wheel that doesn’t tilt. For the users it works for, it’s invisible. For those whom it does not work for, they have no options. There can certainly be over-configuration, but let’s not throw the baby out with the bath water.

Good defaults combined with enough flexibility to meet various people’s needs can make all the difference.

Take OS X for example: You can share your user’s home directories, or not. Want to share a specific directory? Too bad. Drop down to the shell and learn to hack on UNIX configuration files if you want that… This is just horrible.

Like so many things, balance is Good.