Hi,

I'd like to try and summarize this conversation as there might be some confusion around the issues.

So currently we have a bug 8397 [https://bugzilla.osafoundation.org/ show_bug.cgi?id=8397] targeted to future for auto save on the web UI. If I may, I'd like to table any discussion for auto save, because that particular feature is not scheduled for preview.

---
The thread originated because of bug 7633 [https:// bugzilla.osafoundation.org/show_bug.cgi?id=7633], if the user starts to create an item in the detail view, then changes focus and clicks on a lozenge in the calendar canvas, the user will lose their initial edits in the detail view.

The last call/decision of the proposal on the list are:
http://lists.osafoundation.org/pipermail/design/2007-May/007084.html

1. The web UI will be able to preserve edits made in the detail view (do the right thing) when the user clicks on a lozenge for the *same event* they are editing in the detail view. If the user then manipulates the lozenge,(say to change the start time) it will save both the result of the manipulation, and the edits made in the detail view. (originally proposed: http://lists.osafoundation.org/pipermail/ design/2007-April/006842.html).

2. A dialog will appear when the users clicks on a *different event or anywhere else on the application*. The currently proposed dialog will say: You have made changes to the currently selected item. Do you want to save your changes? [Cancel] [Discard] [Save]

---
*The short summary*

*Based on the proposal for bug 7633, the question is:*
If it's possible to have explicit saves when the user clicks off of the lozenge for the selected event, why is it not possible to do the same thing if we list out specific items in the web UI. Could we also allow 'explicit save' (and do the right thing) without the need of popping up the dialog box?

*Answer:*
Eventually the lozenge for a selected event and the detail view will need to link to each other, ie. bug 7849, to allow the user to edit in place on the lozenge. This work includes linking the selected event lozenge to the detail view. This is work that is needed to be done eventually so it made sense to move forward with the explicit save—only for the lozenge for the selected event.

No other items in the UI share in the special relationship between a selected event's lozenge and the selected event's in the detail view. All other items in the web UI are not going to trigger a save and will trigger a dialog to ask the user what to do.

Note: The user has to either move and release the selected lozenge or click 'Save' in order to save the detail view of the selected event. Clicking on the selected lozenge with out moving it will *not save* the detail view, but it doesn't discard it, either.

So for preview, the proposal (as noted above) for bug 7633, still stands.

---
*The long summary of the discussion:*
Matthew: Addresses the problem of auto save on the web UI. 1. Periodic auto-save in the browser won't be mostly instantaneous and painless like it is in a desktop app. 2. Some changes to data require a subsequent data-fetch. 3. Data loss becomes more of a possibility if the user closes the browser and doesn't bother to read the dialog we would pop up to warn of unsaved changes.

Mimi: In response to Matthew, clarifies in #1, this is to not request for auto-save, ie periodic auto-save. If the user has to explicitly click 'save' in a dialog box, instead of prompting the dialog box with a 'save' button, save anyways as the default action when the user clicks off of the detail view. #2, To display a 'processing…' message similar to double clicking to create a new event. #3, asks if it's possible to just automatically save instead of having a pop up to explicitly save. Addresses the concern about users not saving at all. Lists out the kinds of edits users might be doing in the preview timeframe: adding PTO time, updating status and tasks and adding an agenda item to a meeting. There is no expectation for long meeting notes in the description field on the web UI.

Mikeal: Asks Matthew in regards to #2, change to data require subsequent data fetch, to clarify if the UI will become totally un- functional or just 'sluggish' and 'slow'. Likes the 'Processing…' message, but would like to see it visually out of the way.

Jeremy: Responds to Mikeal's questions, certain browsers processing request may tie up the browser until the payload is processed. This greatly depends on what the user is doing. A small amount of data change could freeze the browser. In response to 'sluggish' or 'slow', identifies a few rules of thumb: 1. if you can manage it make it happen within 90ms ( fast enough to percieve its instant). 2. if it takes between that and about 10 seconds, use an hourglass -- tells the user it may take a minute. 3. if it takes more than that use a progress bar and update it frequently so the user doesn't think your app froze. Comments that it's a convention in both web applications and desktop applications to explicitly save, listed examples, but noted that there are always exceptions to the rule, ie. iCal.

Matthew: Responds to Mimi, delighted we're not talking about some kind of background-save process. List out some issues with auto-save. Adds that prompting users about unsaved changes is standard practice in web UIs. Confirms about writing long messages in the notes field is not currently not the targeted use-cases for preview.Feels strongly about making sure the web app leverage web app conventions, unless there is a big value in throwing them out.

Jeffrey: Asks Matthew, if he could explain why the save can't be done asynchronously with different callbacks depending on whether the save failed, time out, or succeeded while normal rendering the event handling continues for the user? Adds the disclaimer that he has not used Javascript in ages.

Pieter: Comments about Google/Gmail had added an auto-save feature a while back, but still have the 'Save', 'Now' and 'Discard' buttons when creating a message. About every minute, there is a status message next to the buttons of when a draft is auto-saved. The auto- save is instantaneous and doesn't interfere with Pieter's typing, nor does he notice the lag time. An error appears when navigating away from the message with unsaved changes.

Mimi: Replies to Matthew addressing higher lever issues. Enumerate some issues about web conventions. Enumerate factors that contribute to the auto-save vs. explicit-save. Notes, the explicit save workflow is fine for preview. Trying to understand the technical challenges for implementing 'auto-save when users would need to explicitly save anyway'. Does the web app slow down when the users does an explicit save? Or is it faster by having an explicit save?

Jeremy: Replies to Pieter noting the activity of 'auto-save' on Google/Gmail is actually checkpointing. A web UI 'auto-save' differs from Gmail because there are multiple edits in the detail which need to be rendered where as Gmail has very little to re-render.

Mimi: Responds to Jeremy, asking if there is a way to isolate where the auto-save needs to fetch the data from the server. Lists out the scenarios and asks what is the reasonable response time for users to wait for a 'saving operation'.

Jeremy: Replies to Mimi, describes 'overt' save operation and 'covert' save operation. References research from AMC SIG-CHI on response time is tied to human perception. Enumerate a couple of examples about response time. Continues to explain that it is important for the user to always feel like they are in control, not the software. Random delays take the 'perception of control' away from the user. In a follow up e-mail Jeremy addresses the slowness and explains the complication of specific items in Mimi's list where the user could potentially click off of to auto save.

Matthew: Replies to Jeffrey that his implementation suggestion is already implemented with the current lozenge to drag, drop and grab another lozenge. Comments that XHR calls do not block the UI, but make the app feel sluggish and unresponsive.

In a follow up e-mail, replies to Jeremy and +1 the comment about garbage collection as an example of sluggishness in the web app.

In another follow up e-mail, replies to Mimi, agrees the 3 pane layout is unconventional and comments that other web apps side step the issues where it forces users to make an explicit save by taking the user to a new screen. Agrees users do not think along the technical lines of there should be an explicit save, but in building the application, there is still a practical need for having the user to make an explicit save even in using Ajax. Comments that iCal is a desktop application and does not have to deal with network latency issues a web app has to deal with. Adds that perceived performance of speed in the web app is another factor that contribute to auto save and notes that it's difficult to make the web app feel snappy. Adding background save has the potential to make the application slower.

Mimi replies to Jeremy, confirms the way he's described covert save is on the table for discussion. Clarifies if the interaction is to explicitly save with a dialog, then it is possible to do the same interaction cue (to explicitly save) without popping up a dialog. Continues to expand on user's expectations depends on the amount of data they are saving. Questions how long it currently takes to create a new event on the calendar?

Jeremy replies to Mimi, restates what explicitly means and if it's not one of the actions examples listed then it's a covert save. The concern is that if the UI is trying to be *smart* and saves, then it takes control from the user. Agrees with Matthew's point about the unpredictable slowness in situations to justify making the edit process model. Answers the question about why we need to explicitly save with a dialog instead of doing the same interaction with out the dialog. Notifying the user and putting them in control, such as an overt save model. Notes, if the action were instant it would not be an issue. Believes user's expectation of operations on the web UI should be instant on editing a location and expanding a recurrence rules per Mimi's examples.

Clarifies the question about the slowness if you edit the Title field then click in the summary table view to resort the list. Enumerate some examples of how the web app would need to make a request to the server to refresh the data on the page. The web UI keeps a small amount of data to draw the display. It's easy to do thing which force the web UI to ask the server for more data or more up-to-date data. Sorting a big list or editing events require the web UI to ask the server.

Matthew responds to Jeremy, about covert save, adds in the web UI, the user drags to move or resize the calendar lozenge and drops it on the canvas. Agrees with Jeremy that if there are large set of data, pagination and sorting will be done on the server.

Mimi replies to Matthew. Acknowledging the risks that Matthew and others have raised and explain how they might play into how we decide these design issues. Noting all the issues to may not be needed for preview, but is useful to understand in the longer term. Agrees about technical risk and wonders if the three pane layout may be a strong factor then the network latency issues in influencing users expectation around save. Acknowledging the discussion has been helpful to isolate the actual risk vs. the general risk. Adds that it would be useful to get numbers in terms of performance risks for specific use cases which are common in the preview time frame. Post preview it will help weigh the performance risk against the user- expectation and workflow concerns.

Did I captured everyone's comments fairly? Or if I'm missing anything?
Thanks, -Priscilla
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design

Reply via email to