The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Modern UI principles for windows

I am developing windows based app,and I wonder what principles I could follow..I read on net about Anti-mac which talks about principles..
#  The central role of language
# A richer internal representation of objects
# A more expressive interface
# Expert users
# Shared control

Now,Iwhat I understand about rich representation,is having visual if user has to choose Hotel..I can have an Hotel Icon which they can click etc..

anyone,with ideas..or experience..
Wednesday, May 31, 2006
I’d be careful with using the Anti-Mac. While there’re some good ideas in these principles, which are often seen in today’s apps, there’s a reason why after 10 years it has not really caught on.

The central role of language. Google-type searches are one place this seems to have been successful. In general, however, language has the problem of putting an intermediary between the user and the work. The user doesn’t create or update information; the user *tells the app* to create or update information. This is usually awkward when the user seeks precision. Ever try to re-find that great site you found last week with Google, but now you just can’t get the keywords quite right? Yes, in the hands of a poet, language is extremely expressive. But then so is a hammer and chisel in the hands of a sculptor.

A richer internal representation of objects. This means provide metadata on your data objects, often user-specific. It does *not* mean use an icon for a hotel. It means indicate if the user has already looked at the hotel in detail, how long ago s/he looked at it, whether the information on them has been update since s/he looked at. The problem is how to get this metadata. Do users provide it (e.g., by tagging)? Why would they make the effort? Can it be automated by observing user behavior? Will that be reliable?

A more expressive interface. This means provide more task-supporting coding of objects. It doesn’t mean use a photo-realistic but generic icon for a hotel. It means show within the hotel icon information about the hotel that is important to the user. What star rating is it? Is it on the beach? Does it have vacancy? This is a good principle to follow.

Expert users. Ignore this principle. Yes, there’s now a generation of computer experts but we long ago went to path of more power over more learnability in our GUIs. I bet you could teach a total noob to send a short email faster with a Unix terminal than with Outlook, not because commandline is better, but because Outlook is so massively over-powered and over-featured for sending a simple email. Apps are already being made for experts. Unless you’re providing training, do *not* make your app more expert-oriented than the average desktop app of today.

Shared control. Another principle to avoid. One word: Clippy. A few more words: agents and automation are great for things users don’t really care that much about, but if your users do care about getting it “exactly right,” then they really do want to be totally in control.
Michael Zuschlag Send private email
Wednesday, May 31, 2006
WOW!! michael,what a wonderful thought out answer.Thanks a lot.
My aim is to make a UI,which helps user to complete his task as quickly as possible..and UI should be very intuitive to use..
Wednesday, May 31, 2006
what about drag and drop user friendly it is?..i am providing his feature..tree-view will have list of items in a hierarchy..and user will drag itme he needs from treeview into a list box
Wednesday, May 31, 2006
Drag and drop is a quick way to do certain actions like copy or re-associate objects. It’s quicker than cut/copy-and-paste even when using accelerator keys. D&D is not as quick as doing something with a single click or key press (e.g., with a dedicated button), but you can’t have that for everything. D&D is accurate when the user can judged the result visually. For example, to resize a shape to a “looks good” criterion, the user will get it right more easily by dragging resize handles than by specifying the size in inches or pixels in a dialog box.

D&D has poor discoverability –users can look right at an object and not realize it’s draggable. It helps if you make it look “object-like, ” for example, give it an icon, make it selectable, give it visual boundaries, (perhaps only when selected), make it look “3-D” on the screen, give it more color and texture than the background. It also helps to change the pointer shape on mouse-over too. Maybe. Even doing that, D&D is best regarded as an expert shortcut, especially if there’s no user training. Tasks supported by D&D should also be supported through menu items and a dialog boxes.

As for making UIs that allow quick and intuitive completion of tasks, you probably already know about our hero's book ( , unabridged physical version at ).
Michael Zuschlag Send private email
Thursday, June 01, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz