Fog Creek Software
Discussion Board

user-interfaces should be user-defined

There's an interesting article titled Vis/Vaporware Interface Simulator. Basically, it argues that user-interfaces should be user-defined, not defined by programmers, so that they fit the user's needs.

This is a big problem in GNU/Linux, because there are so many different toolkits and environments, and this can generate an inconsistent look. However, it is just as much a problem in MacOS and Windows. There's no reason why users should be tightly confined in a UI that the developer "thought" was best. Consider MacOS, which still to this day doesn't have window-tiling, and still has crappy keyboard support. The OS-design almost completely neglects those who have a disabiliy, thus have a difficult time using a mouse. Windows (in which most programs are almost fully keyboard capable, Alt-F etc) is slightly better. MacOSX does have full-keyboard accessibility, but that's still pretty bad (having to press CTRL-F2 to get the menu isn't intuitive...what users need is File with the F underlined, or go back to the old-days when just pressing F1 brought up the first menu).

Other messes include window-management, a total disaster on both Mac and Windows, though slightly better on Windows. Ion has a partial solution to this, with tabbed windows, preventing any overlapping. Of course, some users may not want that.

All of this is where the Vis article comes in. As different users will have different preferences, there's no reason why the user-interface should be hard-coded. Right now, I'm sitting in MacOSX using Internet Explorer. There's really no reason why the buttons should be hard-coded into this program. What would happen under the Vis scheme is that the software would say "make a back button", and "make a file menu", and they would be generated based on my preferences. For a more detailed explanation of how this would work, see:

David Heinrich
Thursday, July 29, 2004

What happens when you sit down at my computer, and my preferences are wildly different from yours?

Thursday, July 29, 2004

Maybe you could carry your preferences around somehow (on a USB keychain, or perhaps uploaded to an internet server)?  As long as it's easy to swap settings somehow, heavy customisation need not be a major problem.

Thursday, July 29, 2004

Iago's comment addresses the above concern. However, even with that aside, what would most likely happen is that there would be some "generic" layouts -- WindowMaker, WindowsXP, MacOS9, MacOSX, KDE, GNOME, Ion, BeOS, RISCOS, Terminal, etc -- which many people would use. Individuals could simply select their desired interface when sitting down at another machine. Any computer likely to be used by many people would most likely have the "big ones" installed. Of course, my private laptop would only have the UIs installed that I want, and if anyone who sits down at it has a hard time, that's just tough -- they can find themselves someone else's charity then :-).

Furthermore, I think that it is categorically more important that the computers individuals use on a daily basis (which are their own laptop and desktop PCs) be specifically suited to their needs, than to consider uniformity accross all computers.

David Heinrich
Thursday, July 29, 2004

User interfaces should not be user defined, nor defined by programmers.  Users in the case of UI carry as much baggage as programmers, it just looks different. 

MS spends millions on behavior studies and psychologists as people often confuse easy, efficient, and productive.  In addition, they perform usability studies to see if it meets the objective of balance. 

If UI was left to the user, we would all be looking at 3270 screens because they are familiar and comfortable or virtual reality because they saw it on TV.  If left to programmers, we will all have fully customizable, video driven interfaces, with so many feature it would be impossible to know what to do. 

All things in balance Grasshopper

Thursday, July 29, 2004


christopher baus (
Thursday, July 29, 2004

And look at what MS comes up with: crap like Clippy. Even now, has MS realized the vast inferiority of their design and started utilizing the edges of the screen? No. If they had, they'd swallow their pride and start working towards something like Apple's universal menu-bar (btw, Apple could take a lesson from themselves and make a universal button-bar).

All of the billions these idiots have spent on UI, you'd think they'd realize that the "ancient" paradigm of pressing F1 for the first menu is alot easier than pressing Alt-F. Really, what I should have said, however, is "user-chosen". I certainly don't think that every user would precisely define his or her interface. Rather, specialized projects developing for people with different needs would produce interfaces (e.g., GNOME, Ion, WindowMaker, Mac's UI, etc), and users would choose those which best suited them.

The other point of this kind of system, though, is that (especially important in the Linux-world) it would make all applications completely consistent with one another. It would also make all applications consistent in the Apple and Windows worlds, as well (since control over the UI would not be in the hands of those writing e-mail programs, web-browsers, etc).

However, the idea that users should be stuck with a one-sized fits all interface is wrong, because different users have different needs. The mouse-driven model of the MacOS and Windows is woefully inadequate for those who are handicapped. Furthermore, even for those who aren't, being able to efficiently navigate from the keyboard is much faster.

You are right, though...many people confuse easy to learn with easy to use with productive. There are many programs that are easy to learn (thus easy to use), but that aren't very productive. There are also some programs that aren't very easy to learn, but are very easy to use and are very productive.

David Heinrich
Thursday, July 29, 2004

I wouldn't go as far as saying UI's should be designed by users, but rather UI's should /not/ be designed /without/ feedback from users.

The ability to design good UI's appears not to be something many programmers can do, though not necessarily because they're programmers. And it also presents a conflict of interest: a good UI design may make the underlying code more difficult to write. So my second point here is that the UI should be designed by someone who doesn't have to code it. Perhaps a usability/UI design expert.

Thursday, July 29, 2004


Which users? Users are not a homogenous group. There are many different audiences. Disabled users have different needs than "normal" users, for example. Power-users have different needs than regular users. This kind of abstraction scheme would keep incapable programmers away from user-interfaces (just because you know some good features to put in a browser, and can design a fast browser, doesn't mean you can design a UI). Programmers with interest and expertise could design user-interface "schemes" or "stylesheets" to suit various sub-groups of users with specific needs.

David Heinrich
Thursday, July 29, 2004

I agree completely. I suppose I'm being a little on the forceful side with my "should"'s (not that that's a bad thing). I don't mean to say that programmers can't design good UI's alone (without outside help), I'm just giving some possible reasons why they often (or usually) don't.

Thursday, July 29, 2004

Who is going to do the training for this? 
Who is going to take the support call when a user accidentally deletes some critical menu item?
Who is going to test the millions of possible configurations?  What if some of them don't work?
If you have a problem, how will you describe it to support so they can duplicate it?

Somewhere I read that a good UI works well for people who know what the program is going to do.  Usability studies tend to measure how learnable an interface is, not how usefull.  It sounds like you want to customize the interface before you know why the interface is the way it is.

And the OP has already revealed that he doesn't like some aspects of the Mac UI already.  How is customization going to help that?

Standards give us a way to communicate, as well as a way to work.  If every user defined his own interface, we would lose that.

Thursday, July 29, 2004

> So my second point here is that the UI should be
> designed by someone who doesn't have to code it.

This happens a lot in the web world.  Graphic designers come up with these convoluted UI's that are just awful to implement in DHTML.  It's a lot like an 8yo designing a dream house...they know what they want it to look like outside, and what rooms should be in it, but their layouts and choices would drive the contractors, plumbers, and electricians insane.

What you really want is a "UI Architect" -- someone who has experience w/ code and knows its constraints, but who can focus on the design and let others work on the actual programming of it.

Thursday, July 29, 2004

Has anyone here used, say, Microsoft Office? You can move any UI bit (menu item, etc) around practically anywhere.

But there's more to UI than just moving pieces around. Office of course has VBA, but there's more than that too.

And support costs often end up trumping the gains of customizability anyway, so organizations tend to lock down systems.

Thursday, July 29, 2004


Companies don't have to test the millions of different configurations. They can announce they'll offer support for whatever configurations they like, and not any others. However, as I noted above, what's going to happen is that there will be various specialized projects working to make the UI work for users with special needs.

Of course, some things the programmers will still have to do. Logical structure, for example; in defining menus, they have to decide how to place items within them, and what hierarchy to use. I'm not suggesting that the program be a big drag-'n-drop fest, but just various style-sheets. This doesn't mean the user would be able to dynamically mess with the configuration. Nor is there any reason to believe that users could "delete a critical menu".

Also, I may not like some things about the Mac UI, but others obviously do. The point is that one UI will not well-serve all users. My other point is the problem when every program has its own unique look and feel, which creates a very non-integrated experience and burdens the user.

David Heinrich
Thursday, July 29, 2004

Maybe it's something in my settings, but when I followed the link in the OP it takes me to a page that has black writing on a dark gray background. How does a site with such an unreadable page expect any credibility on the subject of usability? 

Anony Coward
Thursday, July 29, 2004

David, check out XUL, which has something to do with the Mozilla project. It basically uses XML text files to design the User Interface, so it's easier to set up. But it also allows you, as a user, to modify the underlying XML to change the interface to your liking.

Thursday, July 29, 2004

Isn't this what the Java/SWT ends up doing?

For the typical open/save file dialog, it looks different on every platform. If you're on Windows, you get the dialog you're used to. Ditto Linux, Apple, etc.

Thursday, July 29, 2004

Making the user responsible for design is not the solution to bad design.

That's a recipe for INTEROGATIONWARE.  Everyday users (where 90% of our revenues come from) do not want to design thier own interface.

Programmers design bad UI's because they don't know HOW to design them.

User's don't have any more training that Programmers.  Hell, they can't even TELL us what they want when we're in design mode. The best they can do is pick from a list of selections.

Thursday, July 29, 2004

Sorry for the confusion, but I really didn't mean to imply that every single user would design their own interface and customize it. What I meant to say was that specialized experts in UI design would design UIs for specific groups of people (the disabled, newbies, power-users, developers, etc) who would then select the UI that best suits their needs. That is, it would be a situation of various FOSS and proprietary developers with expertise in UI design finding a niche and producing a product to fill that niche, in terms of UI.

David Heinrich
Thursday, July 29, 2004

1. Why should the users waste time on this. I can use my toaster (and even my PlayStation2 with a wide variety of games software) without having to customize a complex interface to suit my personal needs. There should be the goal in software.

2. I don't think most users know. Many programmers don't understand the users' point of view very well (e.g. about what's wrong with their UI), but I rather suspect most users would know even less about what they want especially if starting from a blank slate.

S. Tanna
Thursday, July 29, 2004

You, most likely, are the "typical user" of most things. Try talking to a disabled person about how "easy" it is to use MacOS, Windows, or even Linux. Also, power-users needs are grossly unfulfilled. Finally, despite all the touting about how hard Apple works on the user-interface, they've done many many many stupid things: (1) Crappy keyboard navigation; (2) After making the universal menu, haven't bothered to claim any of the other edges of the screen; (3) Haven't utilized the current mouse position for anything important [like the program menus, which could pop-up if you clicked]; (4) Still relying on retarded 1-button mice; (5) Getting rid of the applications Apple menu; (6) For the last 15 years, having crappy window-management: no tiling, no automatic organization of Windows. Ion has it right when it comes to organizign Windows -- it should be done by the WM, not the user.

David Heinrich
Friday, July 30, 2004

> they'd realize that the "ancient" paradigm of pressing F1 for the first menu is alot easier than pressing Alt-F

I should have to count how many menus my program has before I can access it via a key? No thanks. Worse - what happens when the number of menus changes depending on context?

Friday, July 30, 2004

I think it's important to keep in mind that a good 'Interface design' is only 'good' if it interacts well with the underlying code. I.e. helps the user achieve their goal.

The design of the interface and how the users will interact with the software cannot be treated in isolation and must be considered right at the beginning, from the requirements and specification stage of the development process.

The onus should *not* be on the programmers to make decisions on the look and feel of the software. This is a decision for the Business Analyst / Client / End Users. What cannot be ignored is what the user needs to achieve with the software (As S. Tanna mentioned, what is the (users) goal of the software?)

Friday, July 30, 2004

>...a good 'Interface design' ...helps the user achieve their goal

>Many programmers don't understand the users' point of view very well.

What if the interface could be user-defined, through watching and listening to the users as they interact with the software or just watch them try to achieve their goal with or without software, thus better understanding their goal.  How 'bout if that information was able to be effectively communicated throughout the software product lifecycle, so even the developers understand the users point of view?

Here's a related article on InfoWorld... (Full Disclosure:  UsersFirst is my company.)
Capturing user experience closes the feedback loop

This is currently done by Usability Professionals, and market researchers.  What if we got to the point that it was so easy for a user to capture his screen and send it to the software product company that you could classify it, and make changes to future releases as users feedback showed you the way that most users interact with it (add idealy, add different Roles capabilities to your software product for the various types of users).  This is already being done somewhat with clickstream technologies on the web, watching how the user navigates, but what if it was a richer experience, and you were able to see all of their interaction with the software in the context of their computer environment?

Pete Gordon

Pete Gordon
Friday, July 30, 2004

Preach it!

And my car should work the same way, damnit - I should be able to put the peddles anywhere I want, and move the speedo to the centre of the steeringwheel, that'd be really helpful and useful.

Don't get me started on that toaster either!

Mr Jack
Friday, July 30, 2004

*  Recent Topics

*  Fog Creek Home