Hi Matthew,
I'm going to step back a bit and address some higher-level issues. I
think there are some unstated assumptions (certainly on my part) that
are directing the details of this discussion and it might help to
elucidate them and address them directly...
+ I'm not proposing we flout web conventions without good reason, so
I'm going to attempt to enumerate them below :o)
+ Ajax web apps are new and innovative. I think it's sometimes
incongruous to talk about web conventions in this new paradigm.
+ In particular wrt Chandler Hub UI, the 3 pane layout is
unconventional. (Google/Yahoo calendars takes you a new screen to
edit the details of an event.) It's more like a desktop app and less
like web apps. But we believe it makes for a better user experience,
so here we are.
Now that we've broken the 'edit in a separate view' convention, what
other 'web conventions' should we reconsider so that the experience
is consistent?
+ For example, users may have expectations around things like auto-
save that they wouldn't have with a more traditional "web-UI".
+ I don't think users think along 'technology lines'. Oh this is a
browser, so there should be explicit Save. I think workflow has much
more to do with it. Because the detail pane is available
concomitantly with the calendar canvas and summary table, auto-save
feels more natural. I think this is why we don't require explicit
save when creating new events on the calendar either.
This is true on desktop apps as well.
- iCal has an auto-save model because it has a 3-pane layout.
- Outlook and Entourage have an explicit-save model because when you
edit event details, you pop-up a new window.
+ I think there are primarily 2 factors that contribute to the Auto-
save versus Explicit-save:
- What is the object that you are saving? Are you clearly saving a
discrete file? Is the thing you're saving in it's own window? Or is
the thing you're saving embedded in / integrated in the app as a whole?
- Probability of data loss. Are you writing a long tome? Or darting
in and out with quick edits?
That being said, I don't think we need to resolve this issue for
Preview. The explicit save workflow we have today is fine, especially
with Priscilla's improvement of 'anchoring it' to the bottom of the
screen so it never scrolls out of view. I just wanted to understand
what the technical challenges were to implementing the 'Auto-save
when users would explicitly save anyway' heuristic described above.
Mimi
1 more detailed comment in-line below...
On May 8, 2007, at 12:41 PM, Matthew Eernisse wrote:
Mimi,
Good questions, all. Responses below.
Mimi Yin wrote:
Just to clarify, I'm suggesting we only 'auto-save' in cases where
the user would need to explicitly click 'Save' anyway, aka when
they "click away from the item and the DV changes what it displays".
Ah, good. I'm glad we're not talking about some kind of background-
save process.
But in trying to imagine how the auto-save described above would
work, it seems to me that we are trying to gloss over something in
the process that has huge significance -- the time it takes to save
the data. In trying to hide it, we're going to create an app that
feels horribly pokey.
The heuristic I'm proposing is: "Auto-save when users would need to
explicitly save anyway". So wouldn't the app 'slow down to save
edits' anyway? Even if we had an explicit Save button? Or are you
saying the save will be faster if it's done explicitly?
The best way to make a Web UI feel snappy is to give the user
immediate feedback when they take some kind of action. In the case
of clicking on an event lozenge, the user's intent is to *select a
new event.* They click on the lozenge, and boom, it's there. Right
now all that is instantaneous, and the app feels nice and snappy.
If we were to implement that kind of auto-save, then sometimes
clicking on a new event would give you selection of the new event
instantaneously, and sometimes (if there have been changes) there
would be a really ponderous waiting process while the *previously
selected event* goes into a processing state, and the app does it's
chug-chug-chug talking to the server, before the new event is
finally selected. That's not going to feel snappy, it's going to
feel really slow.
Well, I think the problem we're facing right now is that we fear
users won't remember to save at all.
I can see that being a genuine concern. There is a very simple step
we can take to avoid that -- prompting users about unsaved changes
when needed. That's standard practice in Web UIs.
Anyone who has worked with a Web app for any amount of time
generally understands fairly quickly that they need to send their
changes to the server for them to be saved. It's a really relevant
fact of the end-user experience with a Web app, and I don't think
it's something we really can, or should try, to hide from them.
Now, if someone were composing a long message or writing up
meeting notes in the Notes field, then yes I agree with your
analysis. But I don't think we're expecting that for Preview.
That makes good sense. I understand there are different targeted
use-cases for Preview.
However, whether it's just for Preview, or for the longer-term when
we anticipate there being people doing the majority of their work
in the Web UI, I feel very strongly that we should let the Web app
be a Web app, and leverage existing Web conventions unless there's
some big value in throwing them out.
Matthew
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design