Hi Mitch,

Thx for putting all this down on paper, I know you've been thinking about this issue for a long time now. I agree this is an important issue to address in the Preview timeframe. I also agree that we should focus our energies on making our solution comprehensible, if not comprehensive. We can accomplish this by making sure we give users the information they need to redress conflicts, if not the elegant UI affordances for resolving them quickly and seamlessly.

It seems to me that the major pieces of information users require are:
1. Time of last sync
2. Who made edits
3. Which attribute was edited
4. What was the edit
5. When was the edit made

We can make the user experience better or worse when it comes to actually resolving the conflict, what's important for Preview is that the 5 pieces of information mentioned above are available to users.

See more in-line.

On Dec 21, 2006, at 11:52 AM, Mitch Kapor wrote:

How I think about handling conflicts which arise in Chandler:

A type of occurrence which I think will arise relatively frequently is one in which two people (Apex and Assistant, for instance) are sharing a calendar. Apex and Assistant both change, say, the notes field of an event, without being aware the of the other's change.

Yes the notes field is the most problematic because it is free-form and people put so many different things in there. It really functions as the poor-man's user-definable attributes affordance. May I ask what kinds of information you and Esther typically enter into the notes field of your events? Directions, agendas, itinerary details, etc?

Where does this information typically come from? e.g. email, phone calls, hallway conversations? your head? Esther's head?


I was simulating this myself, playing the role of two users, before trying it out with Esther, when I ran into exactly this problem within 15 minutes.

What is our current sync interval? I'm wondering how much of this we can address by tightening up the frequency of sync.

Could you elaborate on your simulation? More specifically, what were the circumstances that led you and "Esther" to both edit the same event in such close temporal proximity.


(The situation is exacerbated by not being able to tell the time of the last sync. I understand this feature will be added. Even so, users shouldn't be asked to have to be conscious all the time of when a sync has happened. It undercuts the notion of automatic sync.)

Yes, given the limitations of where we can put the last sync info, it's questionable whether most users will even notice it when we do add it.


Today Chandler's behavior results in data loss for whoever syncs second under the "server wins" policy. Data loss is completely unacceptable.

My first principle: No data loss.

A conflict is not an error. Using the iconography of errors, as suggested is the strawperson, implicitly criticizes a user for something over which she has no control.

That's interesting. I hadn't thought of errors in that way. I was thinking of error in terms of mail server errors and connectivity errors. We should explore alternatives to error, but I am concerned about introducing more icons to communicate different sub-types of errors: user errors v. conflicts v. server errors v. offline, etc.

Because there is a lag after a change is made and before it is synchronized with the server, conflicts will arise through the innocent behavior of users. We don't want to think of this as an error, and we certainly don't want users to think of it as an error when there's nothing they can do to prevent it.

Second Principle:  A conflict is a conflict, not an error.

In an ideal world, the user would be presented with a conflict resolution dialog which she would work through.

Yes, that is detailed on the wiki page proposal.

Foxmarks successfully employs a series of these as does .mac, albeit they are less well done. If schedule doesn't permit this level of work, I'd be satisfied with sending a notification of some kind (to the status bar?) and perhaps modifying the Notes field of the event in some fashion to show the conflicting information. This could be done by appending a section to the Notes field with details of the conflict. The user could then manually fix up the item as needed.

That's interesting. I will try mocking something up to that effect.


This is merely meant to be suggestive. The key idea is the user know there is a conflict and give her the information needed to make a decision about what to do about it.

Third principle: Notify the user, and give her a chance to fix the problem.

Absolutely!

Thanks for your input Mitch. :o)

Mimi

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

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

Reply via email to