The Artima Developer Community
Sponsored Link

Python Buzz Forum
Guidance, Navigation, UI

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ian Bicking

Posts: 900
Nickname: ianb
Registered: Apr, 2003

Ian Bicking is a freelance programmer
Guidance, Navigation, UI Posted: Nov 26, 2003 12:57 PM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Ian Bicking.
Original Post: Guidance, Navigation, UI
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Latest Python Buzz Posts
Latest Python Buzz Posts by Ian Bicking
Latest Posts From Ian Bicking

Advertisement

Dave Thomas (http://pragprog.com/pragdavePragDave) writes about user interface in his latest post. He talks about Naked Objects:

A Naked Objects system provides mechanism, but little in the way of policy. When I describe this, some folks have a strong reaction against the idea. "Without high-level policy imposed by the GUI (scripting, or series of modal dialogs that have to be filled in in a proscribed order) how can we ensure our users do everything that needs to be done?" they ask. And its a good question. Experienced users, folks who understand the domain, love Naked Object systems because they get the control and flexibility they need to get the job done. But inexperienced users can be confounded by that same flexibility—"what should I do now?". (In a way, this also relates back to the Dreyfus model of skills acquisition: beginners need to be guided, while experts need to be left alone to get on with their jobs.)
I think that dichotomy -- flexible tools for experts, guided applicatins for beginners -- isn't entirely correct. I believe good user interfaces are built up out of heuristics -- you guess what the user wants to do next, you guess what information they need to know, and in what order. It's just guessing (which is why it's based on heuristics, not rules), but doing it right is very important.

This guessing is no less useful for an expert than a beginner, though the answers you'll come up with are much different for the two. The expert may not need guidance, but a well-honed UI can save them from navigation, and that looks just like guidance. This is all especially true of an application that is data-rich, with complex relations among data -- exactly the sort of systems that Naked Objects are addressing.

In my experience with application development, domain objects can be implemented in a fairly stable manner. They can be abstract, normalized, and elegant. The same isn't true of UIs -- a normalized UI sucks. An abstract UI is almost an oxymoron. An elegant UI is elegant based on user interactions, not an intrinsic elegance. Binding the UI to the objects themselves doesn't seem like an good, or even particularly powerful idea. Doing that, you are asking your users to become programmers, and create their own user interfaces (ala shell scripts). That's not an impossible goal, but it's not what Naked Objects is trying to sell.

My post on status notification web pattern was about enabling the heuristics that make a good UI -- it lets you easily move the user through the system, predicting where they may want to go next. This shouldn't be confused with back-button-breaking web applications that make the user go through a particular navigation (often with overuse of POST). That's, and other modal, restricted, highly-directed systems are simply poor implementations, they shouldn't be an indictment of guidance as a tool that can help all users, at all levels.

Read: Guidance, Navigation, UI

Topic: Workflow, Webservices and a new pair of shoes Previous Topic   Next Topic Topic: Using aeve to make iTunes talk to iChat

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use