Hi,

Thx Priscilla for pulling together this long thread. I'd like to take this opportunity to pull out some of the takeaways from our conversation. I think we made a lot of progress on this topic and when we revisit it Post-Preview, we will be able to pick up where we left off with a much better understanding of scenarios, risks and factors.

Please review the list below to make sure I haven't left anything out or misunderstood something.

Original Proposal:
+ In the few cases where we plan on popping up a Save dialog, save the user's changes automatically instead. + Provide visual feedback to explain to the user that their edits are being saved. (e.g. Processing...) + Potentially remove the explicit Save button altogether from the Detail View form.

Technical Risks we take on if we go with this Proposal
1. Anytime we commit edits to the server, we will slow down the UI.
2. Users may not know why the UI is all of a sudden, moving slowly. The experience may just feel broken. 3. There is potential data loss because there is no way to checkpoint changes

Ways we might be able to mitigate the above risks
1. Anytime we commit edits to the server, we will slow down the UI.
What if we narrow the scenarios under which you auto-save?
+ Only auto-save when users would otherwise *have to* explicitly save; or IOW
+ Only auto-save when we would pop-up a Save dialog

Specific scenarios are:
+ Changing collections
+ Changing what item you're viewing in the summary pane
+ Logging out
+ Closing a tab/window
+ Going to a different URL

2. Users may not know why the UI is all of a sudden, moving slowly. The experience may just feel broken.
What if we provide user feedback about what the UI is doing?
+ Saving changes to recurrence rule...
+ Fetching 300 new occurrences...

Note: There is disagreement about whether such visual feedback would be enough to address user confusion issues.

What are the specific scenarios where the commit would seriously slow down the UI?
+ Changes to recurrence rule on an event
+ Changing an item's triage status and then resorting the Dashboard by triage status

Note: I think we need some way to roughly quantify 'slow' and probability of 'slowness' to better understand this risk.

3. There is potential data loss because there is no way to checkpoint changes Given our use cases, are there any workflows that involve long edit sessions? Is explicitly checkpointing changes a common scenario? What if we kept the explicit Save button around, but removed the requirement that it needs to be prominent in the UI?

Additional Data Loss risk
1. Users may lose data in the following scenarios:
+ Users may try to log out, which kicks off auto-save. There is an error with auto-save, but the user has walked away from the computer, but they are still logged in. + Users close the tab/window which kicks off auto-save. There is an error with auto-save. There is a marginally higher chance with auto- save that edits won't be successfully saved. + Browser crashes, which kicks off auto-save. There is an error with auto-save. There is a marginally higher chance with auto-save that edits won't be successfully saved.

Ways we might mitigate this risk: Isolate the scenarios where auto- save poses these usability risks and pop-up an explicit Save dialog instead.

For the IRC transcript of a discussion re: risks with mde, please see: http://wiki.osafoundation.org/script/getIrcTranscript.cgi? channel=cosmo&date=20070515
(Conversation starts at 15:06)

User Experience Issues the Proposal is attempting to address:
+ Users have an expectation of auto-save functionality because of the our unconventional 3-pane layout where the DV appears concomitantly with the summary view. + Users find it annoying to have explicit save every time the dialog pops up because they almost never want to discard changes.

Ultimately, I think all of these risks and proposals will need to be evaluated wrt use cases and actual usage.

Things to keep track of to help us answer the above questions:
+ How often do users explicitly Save?
+ What kind of edits are being Saved?
+ How long does the average Save take?
+ How many times do users explicitly Save within a single edit session? (aka without switching what they see in the DV) + How often does the Save dialog pop-up because the user forgot to explicitly Save?
+ How often do users want to Discard changes?

Conclusion: There are clearly additional design and schedule risks we take on if we attempt any kind of pseudo-auto-save workflow. However, from a purely technical / implementation perspective, it does not appear to be a huge delta between implementing auto-save versus popping up an explicit save dialog. There are however uncertainties around select scenarios that might require us to iterate in order to deal with unforeseen edge cases.

Mimi

On May 10, 2007, at 3:04 PM, Priscilla Chung wrote:

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

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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

Reply via email to