The first one is the non-technical way:
It's the interface one sees on Windows and Mac, or the iPod interface: focused on what YOU (as the user) want to do, prioritizing on the most used features, and so on; maybe, elegant.
The second one is the technical way:
It involves the user actually knowing a lot of inside information, specialized data and what it all means. It's the UNIX/Linux philosophy, or the interface of the studio sound mixers: lots of controls, all looking the same and each controlling a different aspect of a process.
One of the good examples of the two interfaces and the differences they enforce on the users, is in consumer cameras versus prosumer cameras:
the consumer ones make all your adjustments, you just press the shutter (and for most amateur photographers, this covers all their needs).
the prosumer ones, ask you to understand exposure, aperture, focal distance, sensor (or film) resolution and a bunch of other things.
Considering all this, when you are in the position of designing something, I think there is one criteria that will point you in the right direction:
Who is the targeted client?
And here I (finally) get to the purpose of my little rant: One of the most frustrating experiences is having one, when you need the other.
In our company, we have an excellent help-desk system: spanning multiple countries and offices and covering all needs from user problems like helping users:
-Dogbert's tech support This is Dogbert. How may I abuse you?
- I need to move my cursor to the right but my mouse is at the edge of the mousepad.
- Have you tried rebooting without saving your files?
- Yeah, several times.
- Have you tried moving your desk?
- It didn't work.
- You need my $800 mousepad upgrade.
- What account does this get charged to?
- "Idiot expense," just like everything else.
It also covers requesting a new office in another country you'll be in, starting next week, for that matter.
My only pet-peeve with this system, is the process of opening a help-desk case. The interface could use some major improvements, starting with a search function, or a simple web wizard.
It's like this: Let's say one of your UNIX servers displays the message:
You don't exist. Go away!
(this is an actual error message one of my friends got, while trying to make a remote connection).
You want to open a HD call to get over this, so you open the HD website, and check the categories: you have (let's say):
- account problems (one link), which kind-of might be, since your account is not authorized for remote connections;
- access problems (second link) which it could be also, for the same reason as above;
- UNIX problems, which it also is
- Development environment problem, which it might be also, since you're doing development under your account
Once you open it though, you find out the link relates to NT accounts, password expiration and asking for a new account.
When you open it, you realize it relates to NT security permissions over the different shares and resources on the local network.
When you browse through the tree of options here though, you realize it's for asking for a bigger quota, requesting a new UNIX account, or reporting UNIX environment problems.
If you actually browse through this category (an have not given up yet), you might get lucky.
On top of this, every one of the links opens a different page that asks you to fill a form, with each field doing a page reload with new data, so by the time you realize your server name is not in the list (and you're obviously in the wrong HD call category) ten minutes have passed and you have to start over.
As an extra bonus, the categories have descriptions filled with acronyms from other projects, so you have no idea if they actually might relate to you and your problem.
Because of this interface, all the experiences I've had with opening HD calls up to now, have proved to be time-consuming and overall annoying.
Most of the time, I feel like cursing it and claiming it idiotic.
Instead, it was just designed for the wrong audience.