User Services/Sync/v1

From MozillaWiki
Jump to navigation Jump to search
Last updated: 2013/08/26


Tracking

TBD - this where we'll add a bugzilla query for tracking when we have bugs filed

Goals

The goals of this MVP release of the new Sync service are to:

  • Replace the existing Sync service with a persistent & scalable system, that closely (but not precisely) matches the old Sync functionality
  • Introduce and integrate with the new "Firefox Account" service
  • Significantly improve the Sync UX so more people will set up and use the service
  • Migrate a majority of existing Sync users to this new service

User stories

Milestone 1

Core user stories

  • As a user, I want to be able to pick up any new device and replicate my core Firefox experience so I don't have repeat a bunch of work I've already done on another device.
  • AWESOMEBAR & HISTORY - As a user with several devices, I want my core Firefox experience to be available on all devices, so I don't have to spend a lot of time rebuilding my awesomebar experience or other personalizations on each. (Equal to whatever parity with current Sync is in terms of # of days of history.)
  • PASSWORDS - As a user, if I have typed in and stored a password in Firefox on one device, I don't want to have to type and store that password again on any of my other devices so my web accounts & passwords are magically available on all of my devices (especially important so I don't make typing mistakes on my mobile and become frustrated!).
  • OPEN TABS - As a user, I want the option of syncing my tabs from other devices so I can pick up where I left off when I switch to another device. (Basically the same as current Sync behaviour.)
  • BOOKMARKS - As a user, I want all of my bookmarks to be synced across my devices, although I don't expect full bookmark management tools on mobile devices yet. Any bookmarks I create while on mobile devices should be put into a single "Mobile" (or similar) folder which is then synced. Desktop bookmark organization & behaviour should not change.
  • As a user of Firefox for Android, I do not expect my Reading List content to be synced to other devices at this time, because on many platforms Firefox does not yet have the Reading List feature.
  • As a user, I expect Firefox Sync to sync my data relatively frequently, but not instantly.

Set-up & Account Management

  • As a Firefox for Android user, I want the option of setting up a new Firefox Account when I first install Firefox, so I can sync my browser data between my devices.
  • NEW As a user, I want a way to clearly understand what data Sync is actually Syncing, what that data means in terms of my browser functionality, and what happens to that data when I have logged out of my browser.
  • As a user, I want to set up a Firefox Account using an email address and password of my choice, so I am not required to use any particular third-party sign-in service - I am comfortable using an email address of my choice for this purpose.
  • As a user, I don't want to be forced to create a Firefox Account when I first start using Firefox, so I can start using the browser as quickly as possible once I've downloaded and installed it.
  • As a user, I want all of my data (history, bookmarks, etc.) to be saved on my local machine whether or not I've set up a Firefox Account, so I am still able to build up a collection of data and personalize my Firefox experience over time.
  • As a user, I want to be able to change the password for my Firefox Account data from any of my Sync-enabled devices, so if someone does steal my laptop or other mobile device they won't be able to access any new data that is added to my Sync Account, even though they will be able to access the data that had been previously synced and is local on the device.
  • NEW As a user, I want to be able to reset the password for my Firefox Account data from any of my Sync-enabled devices, so I can continue using my Firefox Account even if I have forgotten my password.
  • As a user, I want to be prompted to create a Firefox Account when I first install my browser, but I want it to be easy to dismiss that prompt either forever (so I don't get bothered again), or to be reminded again later in a day or two (so I remember to look at it in more detail another time). I also want it to be very easy to get more details about what a Firefox Account is and why I would want it before I go through the process of creating one.
  • As a user, I want to be able to go into a settings menu to create my Firefox Account, so that I can set up it up in my own time.

Detaching Sync

  • As a user, I want to be able to detach my Firefox Account on a device, but best-effort preserve the account and its related data for use in other clients or for later use in this client, to conserve on data costs on my mobile.

Security/Encryption

  • NEW As a user, I expect Firefox Sync to securely encrypt all my Firefox server data with my Firefox Account password.

Feature Usage Information

  • Nothing

Performance & Stability

  • As a user, in the event of Sync service interruptions, I expect to be able to use my browser and previously-synced local data as normal, even if Firefox cannot access the Sync servers for an extended period of time.

Future (Milestones 2+)

Core user stories

  • Nothing

Set-up & Account Management

  • NEW As a user, I want optionally to specify which types of data will be synced between my devices. During this process, I want to be able to get more information about what each type of data is, what that data means in terms of my browser functionality, and what happens to that data when I have logged out of my browser.
  • NEW As a user, I want to be able to modify my Sync data settings in my browser at any time after I have set up Sync and am logged into my Firefox Account.
  • NEW As a user, I expect that my Sync settings will be applied universally across all of my devices, so if I change which data types I'm syncing while on my phone, those changes will apply to all of my data types. (Note: we may want to change this to being device-specific settings in the future, so please ensure we can change this later if needed.)

Detaching Sync

  • As a user, I want to be able to detach my Firefox Account on a device, and be assured that my account and its related data will be preserved on Mozilla's servers, so I can access it later either with this or other clients.

Security/Encryption

  • As a user, I expect Firefox Sync to securely encrypt all of my passwords that are managed by my Firefox Password Manager so they cannot be accessed by anyone else, regardless of whether they have access to data on the Sync servers.
  • As a user, I would like the option of encrypting all of my Sync data in such a way that my data is completely unrecoverable if I lose my password.

Feature Usage Information

  • As a Mozilla Product Manager, I would like to know how many users are using sync across which devices, and how many devices each user is syncing to their account.

Performance & Stability

  • As a user, in the event of Sync service interruptions, I expect zero data loss across all of my devices, even if Firefox cannot access the Sync servers for an extended period of time.
  • As a mobile user, I expect Sync to be as bandwidth-conservative as possible, minimizing re-downloading or re-uploading data in event of system errors or other issues, and otherwise ensuring that bandwidth used should be approximately proportional to the volume of changes.
  • As a user of a more limited mobile device (ARMv6, FirefoxOS), I expect Sync to be able to intelligently scale down in terms of the amount of bandwidth and storage it uses so it does not excessively tax my data plan or storage space.

UX design

User research

Migration strategy

Strategy

  • We want to encourage existing Sync users to migrate to a Firefox Account, without harming the experience of users who aren't ready to move.
  • We're aiming for an overlap period between Sync and Sync.next. This will reduce the risk of users having partitions in their devices, reduce problems with upgrade/downgrades and staged releases, etc. The exact duration of this overlap period will depend on several factors: complexity, cost, time to market, and market parity.
  • Delayed upsell. We want to sell Sync.next and Firefox Account once users are ready to upgrade -- that is, they have the right version of Firefox on each of their devices.
  • Forcing function. As we ramp up, we'll remove the ability to set up an old Sync account from each product. Eventually we will force users off the old service and decommission it. See overlap period.

Migration mechanism

  • Detect specific states.
    • Non-email Sync account name. No migration possible.
    • Single device. Encourage migration! No partitioning possible!
    • Self-hosted. Offer to migrate to Mozilla's system if there's no locked pref to indicate that that's not desirable, provide docs to support continued self-hosting, inform the user of decommissioning plans so they can make an informed choice.
  • Offer to set up a new Firefox Account using their same email address. Enter the normal account setup flow, which will take care of email verification. Don't reuse the password -- it's gone over the wire, many users won't remember it, and it's probably neither strong nor memorable.
  • Preserve data syncing preferences, also allowing user to make new decisions at this point.
  • Write decommissioning sentinel into the old Sync account. (bug 895526, bug 895518.)
  • Disable or delete local Sync.old account.
  • Clean up local prefs for sanity.
  • Configure to intercept old account hooks e.g., Send Tab intents.

Design requirements

  • Only one flag day requiring user involvement.

Non-goals

  • Migration of data.
  • Simultaneous syncing to Sync.old and Sync.next.

Open issues and action items

Please strikethrough when complete. Thanks!

  • [lloyd] How long is the overlap period? Need to know some operational costs.
  • [rnewman, mfinkle] What's the client engineering burden to having an overlap period?
  • [rnewman] Send Tab isn't in the PICL IdP. We're trying to find out how important a feature this is for parity.
  • [product] We know we plan to disable the account setup UI during ramp-up. At what point do we want to disable *login*, for those poor suckers who reinstalled Windows and want to get their data back from Sync?
  • [product] When should we kill the Sync promo on Android? Depends on how valuable it is and how long our roadmap is for Sync.next.
  • [?] Add-ons that provide sync engines will be screwed.

Original etherpad for notes

Change log

  • 2013/08/26 - Changed "Milestone 2" section to be "Future (Milestones 2+)" to better reflect reality.
  • 2103/08/20 - Removed "before I have to create a Firefox account" from data selection user story in m2.
  • 2013/08/20 - Reworded user story in m1 "Securty & Encryption"; added two user stories to m1 "Set-up & Account Management"; Added 3 stories to m2 "Set-up & Account Management". All of these are marked as NEW.
  • 2013/08/15 - Minor wording change to user story: "As a user, I would like the option of encrypting all of my Sync data in such a way that my data is completely unrecoverable if I lose my password."
  • 2013/08/15 - Split user stories up into Milestones 1 & 2 based on recent discussions on the sync-dev@ mailing list. At this point it still needs final review by Engineering leads and Product owners.
  • 2013/08/12 - Added "Only one flag day requiring user involvement" as a migration design requirement.
  • 2013/08/06 - Minor wording tweaks to the Goals section based on feedback from Lloyd & Andreas.
  • 2013/08/02 - Modified first-run set up user story to be for Firefox for Android only.
  • 2013/08/01 - Removed all "Migration from Old Sync" user stories as they were placeholders - new stories will be added soon. Added "Migration Strategy" as a new top level section so all of this is in the same place.
  • 2013/08/01 - Changed "Draft" banner to "Last updated", minor wording change in the "Goals" section.
  • 2013/08/01 - Moved page to "User Services/Sync/v1" (and left a redirect in the original location); removed "What is this?" section; added "Tracking", "Goals", and "UX design" sections.
  • 2013/07/31 - Minor wording changes, added two new user stories to the "Set-up & Account Management" section (currently the first two).
  • 2013/07/19 - Changed "disable" to "detach" when talking about "disabling sync" on a device (dria)
  • 2013/07/19 - Changed wording of bookmark sync user story so all mobile devices add bookmarks to the same "Mobile" folder, not one per device (dria)
  • 2013/07/19 - Sent link to sync-dev@ list for review (dria)