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

