Hi all,

In some smaller discussions we've observed that having a single set of syncing 
options for all of a user's devices is going to get complicated and painful. I 
thought I'd send out an email explaining very briefly why I think that is, a 
couple of other points that this intersects with, and a suggestion as to a way 
forward. We can dive in with more detail on each point if we need to.

In short:

1. Different devices don't have the same capabilities. We see this right now 
with Sync on Android, which doesn't sync prefs or add-ons. The code to support 
that with Sync's single-election model is hairy, and the user experience is 
weird.

2. Different devices don't even have the same *services* -- maybe you can sync 
with Pocket on your phone, but not on your desktop. Maybe you can only sync the 
same data type with different services on different devices! Now what?

3. We're going to be adding capabilities (add-on sync) and services (send tab) 
over time. We need a way to surface those to users so they can opt in.

4. Single-list is, IMO, just as surprising to users as having per-device 
choices. For every user who would turn on bookmark sync on their desktop after 
first-run and be surprised that it doesn't automatically turn on on their 
phone, there's another user who turns off history to save bandwidth on their 
phone (an MVP req!) and is surprised that their desktops are no longer sharing 
history. This has been a noticeable point of negative feedback from users with 
Sync's one-size-fits-all approach.

5. Automatically turning on or off data choices is a security hole, so we're 
going to prompt. That experience is better if it's a choice, not a veto: "You 
just turned on bookmark sync on your desktop. Do you want to sync your 
bookmarks with this device?" rather than "You just turned on bookmark sync. 
Allow this change, or turn it off everywhere?". And that also surfaces #4.

6. For first-run, as I understand it, we would like to get users more involved 
in the value prop of the feature, and we can do what we can to migrate your 
choices from Old Sync. That's a good opportunity for doing something smarter 
than Sync does now.

7. There's nothing to say that we can't streamline the user experience for 
users who want it, once we've clued them in to what's happening: e.g., "Do you 
want to sync your bookmarks with this device? [] Always sync new data types".


My proposal:

Given that we already need to show UI to users as data types change, and given 
that we already need to support different capabilities and services between 
devices, and given that we need to advertise new options to users as they 
become available, I see only user pain and non-trivial engineering complexity 
in trying to enforce a single list of services and datatypes between devices.

A single list makes some amount of sense (leaving only points 3 and 4) if every 
device is the same -- like Firefox Sync 2009-2011 -- but that will very rapidly 
become false in the new world, and we should act accordingly.

Instead, let's keep the experience simple where it can be, allow for discovery, 
ask for confirmation when we might be wrong, and allow the user to choose when 
we can't make even a half-decent choice on their behalf.


Thoughts, particularly from a product perspective?

-R
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to