User Interface (UI) design can be contentious. Often I heard people talking about it and inevitably an argument breaks out: one person says that one way is the best way to achieve a task, and the other person has another idea. After a heated debate, neither gives up and the problem remains. How do designers appease a wide variety of audiences for their software? Considering that no two people are alike: everyone has a slightly different approach to things. Both UI ideas might be perfectly valid or both might suck eggs. Nevertheless, the argument usually pulls in a third party for their opinion. When I am dragged in, I try to avoid making a choice one way or another if both are workable solutions by thinking of a third alternative…
The Mac’s Charm
For example: I subconsciously noticed the flexibility to do whatever was most comfortable the first couple of days I was using my first Mac, decades ago. But I didn’t actually consciously notice it until I tried another GUI. I noticed how clunky the UI was and chalked it up as a poor imitation of the Mac’s UI. On the Mac, I usually had more than one way to accomplish the same thing. There are three ways to cut: Command-X, Edit>Cut, and Right-click>Cut. There are many ways to open a document as well: select it and chose File>Open or hit Command-O, double-click it or dragging it to the application icon or window. What this meant is that I didn’t have to switch from keyboard to mouse or vice versa. I could do what was more convenient for me at the time and this often changed depending on what I was doing. This approach was applied to almost every facet of the GUI and bled into third party programs thanks to the Macintosh Human Interface Guidelines. I internalized this concept, and it is one of the things I consider when evaluating the quality of an application.
Problems in Paradise
However, the Finder and most apps had a few limitations. For example, I couldn’t assign hot keys to menu items back then. This is one of the things I complained about to Jef Raskin when I met him at a company party. But that’s another story.
Eight years prior to meeting Jef, I was talking to my best friend about this while making a layout on his Mac IIci
. He thought some of the Mac’s UI choices were stupid. He thought Apple should have made things easier for advanced users since the interface only slowed him down. If he’d had his way, there would be no confirmation dialogs before doing anything that could not be undone (like emptying the trash). I explained that if things were like that, then beginners wouldn’t be able to use the machine as effectively. People would be intimidated knowing they could accidentally chose the wrong menu option or make the wrong keystroke and lose a lot of work. He cited his often used phrase, “Lowest Common Denominator.”
I knew Apple was too stubborn to really unleash the power of the GUI for fear of overcomplicating things and losing their unique approach to UI. I thought there should be different user modes: Novice, Standard, Expert and Developer. All computers would come from the factory in “Novice” mode. The more advanced users would discover the additional modes and could eventually make their own custom mode. User interfaces had small sets of preferences you could change, but no sets of preferences to switch between on-the-fly. So, when people get into a UI design argument, I suggest doing both, if it is possible. GUIs aren’t like physical buttons or switches—we can rearrange them arbitrarily. All we need is code allowing the rearrangement and alteration of UI elements. If users don’t like everything in one mode, they can create a custom hybrid mode based on one of the sets. To switch modes, a menu option under a “View” or preference pane switch would make switching as fast and simple as possible. I have yet to see this fully implemented in any OS. Modifications are still piecemeal, and users have to modify each parameter manually. There is no way to save multiple custom UI preference sets and switch between them without juggling files between program launches. Most programs have the ability to save custom prefs, but only a few that I have seen have user modes implemented. Even fewer have swappable custom preference sets. If you know of a program that allows custom preference set swapping, let me know. I’ll try it or check it out and add it to my list: it is probably an excellent program. Thanks for reading. Comments are always welcome.