User Services/Sync/Relaunch

From MozillaWiki
Jump to: navigation, search

Firefox 29 Cycle Sync Relaunch Burndown

At the Mozilla 2014 Planning offsite on Dec 11th, Johnathan Nightingale, Andreas Gal, and Mark Mayo agreed to jointly accelerate Sync relaunch on Firefox Desktop and Android as their teams’ top priority, targeting the Firefox 29 release and thus a January 29th code freeze.

We must efficiently collaborate across teams to meet our impending deadline. This constantly updated, cross-team, master dependency burn list is our collaboration tool, consolidating the dependencies and our focus to resolve them to a single page.

Johnathan Nightingale said of the Sync-Tactics mailing list, "This list is for coordination, fast communication about changing circumstances, and next-step hand offs." Likewise, this one-pager is for continuously surfacing, tracking and addressing the critical path to relaunch on deadline.


Product Requirements & User Stories

Firefox for Android MVP

Desktop MVP

1. Functional Equivalence As a Firefox user, I want the "core" functionality of Sync to remain the same in every respect once a Firefox Account based registration scheme replaces the crypto-based registration scheme so that I can continue to experience the same benefits from Sync in the future as I do today.

 Acceptance criteria
  1. Any data that is syncable in current Sync will be syncable when we introduce accounts
  2. Any choices a user has to customize current Sync will be available when we introduce accounts
  3. A user will not detect any difference in performance of Sync today and performance of Sync after we introduce accounts

2. Transition from old sync to new sync As a user who currently has a Sync account, I can choose to transition to FxA/Sync after the release of 29 so that I can benefit from having an FxA.

 Acceptance criteria
  1.A user of current sync can find detailed instructions on a Mozilla web property for how to transition 
    from current sync to FxA/Sync
  2.A user can follow those instructions to transition successfully from current Sync to FxA/Sync
  3.After that user has transitioned from current sync to FxA/Sync they will only be able to manage their 
    Sync preferences by signing-in to their Firefox Account.
  4.After transition, the default views for this users will change from current Sync views to FxA/Sync views

3. FxA Points of Entry As a user who is not signed-in to Sync when I upgrade to 29, I want to be able to set-up FxA/Sync so that I can benefit from Sync and FxA.

 Acceptance criteria
  1. As a user I can enter the FxA/Sync set up process by: A)Clicking a promotional snippet B)Clicking the 
    Sync icon in the footer of the about:home our about:newtab page C)Selecting "Sync set up" from the 
    Firefox Tools menu 
  

4. Discouraging transition in Fx29 As a product owner, I want to limit the amount of exposure that current sync users have to FxA/Sync, so that I can wait until we have a more streamlined transition flow before I more actively encourage them to transition.

 Acceptance criteria
  1.Users who are signed into sync when the upgrade to 29 will see nothing different in their Sync 
    preferences from what they see today until they transition to FxA
  2.Users who are signed into sync when they upgrade to 29 will not see promotional language offered in a 
    Snippet on their about:home page that pushes them to transition to FxA until they transition to FxA.

5. Locking current sync accounts As a product owner, I want to prevent current sync users from making any change to their current sync settings unless they upgrade to FxA so that I can simplify current sync maintenance requirements.

 Acceptance criteria
  1.Users who are signed into sync when they upgrade to 29 will not be able to change any setting in their 
    Sync preferences or add a new device
  2.If these users attempt to change their settings or add a device they will be directed to transition to FxA
  3.Users who are signed into sync and using a version of Firefox that predates 29 will not be allowed to make 
    any changes to their Sync preferences or add a new device

6. Preventing any new current sync accounts As a product owner I want to prevent a user who has not yet set up a Sync account from creating a current sync account after the release of 29 so that I can more easily transition all users to FxA/Sync over time.

 Acceptance criteria
  1. After the release of 29, no user, on any version of Firefox will be allowed to create a current Sync account

7. FxA password change/reset As a user I want to be able to change or reset my password so that I can continue to use Sync even if I forget my Firefox Account password.

 Acceptance criteria
  1.A user can access Firefox Account settings
  2.A user can choose to change or reset their password from the settings 
  3.Once a user has reset or changed her password on one client, she will be asked to reset or change her 
    password on any other client she is signed-in to the next time she access that client.

8. FxA sign-out As a user, I want to be able to sign-out of my Firefox Account so that I can decide to stop Syncing data on a particular client.

 Acceptance criteria
  1.A user can sign-out of her Firefox Account
  2.After the user has signed out of an account on a given client, no data will be shared with or from that client

9. FxA sign-in As a user, I want to be able to sign-in to my Firefox Account so that I can decide to Sync data from a particular client if I have previously signed-out of that client.

 Acceptance criteria
  1.A user can sign-in to her Firefox Account
  2.After the user has signed-in to a particular client, data will resume syncing to/from that client

10. Creating an FxA account As a user, I want to create a Firefox Account so that I can use Sync to trade data across my Firefox clients.

 Acceptance criteria
  1.A user can create a Firefox Account
  2.A user can use their own email address and password of their choosing to create and account

11. Password strength meter As a user, I want to know how strong my chosen password is against security attacks so that I can determine the password strength I want.

 Acceptance criteria
  1.A user will see a "password strength" meter as they enter their password 

12. Choosing to defer FxA creation As a user, if I am prompted to set-up Sync, I want the option to defer so that I can choose to use Firefox without creating a Firefox Account or setting up Sync.

 Acceptance Criteria
  1.If a user is prompted to set-up Sync, he can choose not to
  2.If the user wishes to set-up Sync at a later time, he can.  

13. Sending account verification email As a product owner, I want to send a verification email to each email address provided by an account creator so that I can provide necessary notifications to the user in the future

 Acceptance Criteria
  1.Users will receive a verification email after they submit their email address and password
  2.This email will be sent to the address provided by the user during the account creation process

14. User verifying account As a user, I want to be able to verify my email address and my desire to set up a Firefox Account by clicking a link in the verification email I received from Firefox

 Acceptance Criteria
  1. Users can open the verification email
  2.Users can click a link in the email to verify their email address

15. Account verification success message As a user, I want to know that my account has been verified after I click a link in my verification email so that I know I have completed the process of setting up an account

 Acceptance Criteria
  1.After a user clicks a verification link in the email received from Firefox email address they will see a 
    web page declaring a success state
 2. This page will open in their default browser
 3. If the default browser is something other than Firefox, this user will be directed to open Firefox

17. Review ToS and Privacy Policy As a user, I want the option to review the ToS and Privacy Policy so that I can make sure I’m comfortable providing my information to Mozilla.

 Acceptance criteria
  1.Users can link to the ToS from the “Create Account” page
  2.Users can link to the Privacy Policy form the “Create Account” page
  3.Both the ToS and PP will open in New Tabs if clicked
  4.A user may accept or decline the ToS and/or PP
  5.If a user declines the FxA creation flow is stopped
  6.If a user accepts, the FxA creation flow continues

18. Sync Preferences options As a user, after I have verified my email address I want to be able to access my Sync Preferences so that I can choose what data I want to share across clients and begin syncing

 Acceptance criteria
  1.Users can access Sync Preferences after they have verified their account
  2.Users can choose to “Start Syncing” from the Preferences page
  3.Users can select to share “Everything” and will begin syncing all possible data
  4.Users can further customize what they want to share by selecting from the following list
   *Bookmarks
   *History
   *Passwords
   *Tabs
   *Add-ons (b/w Desktops only)
   *Preferences (b/w Desktops only)

19. Coppa As a user I want to tell Firefox how old I am so that I can be cleared for COPPA restricted activities

 Acceptance criteria
  1.Users will be asked to provide their year of birth on the account set up page where they enter their 
    email address and password
  2.If a user enters a year that indicates their age is less than 13 years old on the day they attempt to set 
    up an account she will be denied a Firefox Account and prevented from creating one during the browser session
  3.If a user enters a year that indicates their age is at least 13 years old on the day they attempt to set up 
    an account she will be granted a Firefox Account

20. Australis onboarding As a user who is not signed-into Sync, I want the onboarding experience for Firefox 29 to include a strong call to action to set up Sync so that I can begin to take advantage of Sync and the value of Firefox Accounts.

 Acceptance criteria
 1. Users who are not signed-into sync when they upgrade to Firefox 29 will experience an interactive 
    onboarding experience 
 2. This experience will include a strong call to action to set up Sync

21. Customize sync preferences As a user who is creating a new FxA account, I want to indicate whether or not I want to customize my default sync preferences when I create my account so that I can control which data types are shared across clients that I am signed-in to.

 Acceptance criteria
 1. Users can select an option to "customize sync preferences" when they first create a Firefox Account tied to Sync
 2. If users select this option, they will be shown a menu of sync preferences they can customize before any Syncing begins
 3. If users do not select this option, syncing will begin as soon as their account is verified

22. FxA account sign-out warning As a user I want to be shown a warning if I attempt to logout of a Firefox Account that I am currently signed into so that I know the risks of data sharing across accounts if another user signs in with her account after I have logged out

 1. Users can log out of their Firefox Account
 2. Before sign-out is complete, users will see a warning that their data may be shared
 3. Users can opt to remain signed in
 4. Users can opt to continue to sign out 

23. FxA account sign-in warning As a user I want to be shown a warning if I attempt to login to my account--if another user has also signed into his account on the same client between the time of my last logout and current sign-in attempt--so that I know the risks of data sharing across accounts if I sign-in

 1. Users can sign-in to their account
 2. If another account has been accessed on the client where sign in is being attempted, the user will see a 
    warning that signing-in might lead to data shared across accounts
 3. Users can opt to cancel sign-in
 4. Users can opt to continue to sign-in

UX

  • In progress: UX is dependent on the final stories

User flow diagrams, low-fidelity wireframes, and links to higher-fidelity artifacts that illustrate the incorporation of Sync.next / Firefox Accounts.

Treat these documents as the visual equivalent of a wiki, and if you drop in a comment, please leave your name.

Engineering / QA Deliverables

  • Fri, Dec 20
    • [PM] Populate UX, Eng, QA deliverables for the remaining four Fridays.
    • [ON TRACK] [UX] Bare bones approach for both Desktop & Android
    • [ON TRACK] [OPS] (edwong) Deploy staging Sync server cluster for load testing
    • [ON TRACK] [FxA ENG] Demonstration build on elm
    • [ON TRACK] [QA] Complete by Fri, Dec 20 - Define load requirements and SLA for Auth and Sync testing
      • Smoke Desktop Elm, Fennec, Stage Auth server
  • Fri, Jan 3
    • [PM] MVP user stories confirmed
    • [PM] Migration strategy confirmed
    • [ON TRACK] [UX] All flows (WIP)
    • [ON TRACK] [FxA ENG] Finalize definition and build "onepw" login API in the FxA Auth Server
    • [Desktop ENG] Merging elm to mozilla-central
    • [ON TRACK] [QA] Smoke Nightly
  • Fri, Jan 10
    • [ON TRACK] [PM] desktop MVP user stories confirmed
    • [ON TRACK] [PM] Android MVP user stories confirmed
    • [ON TRACK] [PM] Migration strategy confirmed
    • [ON TRACK] [UX] Mid/Hi fidelity flows in progress
    • [ON TRACK] [FxA ENG} In progress Desktop/Web FxA login UX on "latest" dev server (completed 1/13/14)
    • [ON TRACK] [FxA ENG] Proposal made for FxA Sync datatype selection UX
    • [ON TRACK] [FxA ENG] Proposal made for FxA password change/password reset technical requirements
    • [ON TRACK] {FxA ENG] Final candidate FxA Auth API on "latest" dev server
    • [ON TRACK] [FxA DevOPs] Stage, Prod Fxa Envs created
    • [ON TRACK] [Backend ENG] Lock down Storage 1.5 API (waiting on final rnewman feedback)
    • [ON TRACK] [Backend ENG] Get tokenserver building for QA needs
    • [ON TRACK] [Android ENG] First Android onepw and native UI build to QA.
      • Android try build at https://tbpl.mozilla.org/?tree=Try&rev=60c48d4ed251
      • UI will not look like final
      • create new account from native UI
      • log in to existing account (native UI)
      • view status of connected account
      • Sync should work in non-error states
      • limited error handling (logs but no surfaced UI; incomplete recovery from error states)
      • no ability to administer account (change local password; change remote password; reset remote password; administer sync data elections)
    • [ON TRACK] [QA] Dev to hand off build using frozen auth and sync storage api. Milestones are reset to 1/31 is UX/API freeze, Client dev complete.
  • Mon, Jan 13
    • [ON TRACK] [FxA ENG] Make decision on FxA password change/password reset technical requirements
    • [ON TRACK] [FxA ENG] Deploy final FxA API API and in progress FxA Desktop/Web front end to "stable" dev servers
  • Wed, Jan 15
    • [ON TRACK] [Backend ENG] Signoff on password change interaction with the tokenserver
    • [ON TRACK] [FxA ENG] Freeze code for initial production releases of FxA auth server and FxA content server
  • Thurs, Jan 16
    • [ON TRACK] [UX] Final Design Spec completed and ready for review and feedback
  • Fri, Jan 17
    • [ON TRACK] [UX] Finalize and lockdown all flows. Feedback required for design spec must be sent to UX by EOD.
    • [ON TRACK] [UX] COPPA standalone 'failure' screen
    • [ON TRACK] [FxA ENG] Deploy initial RCs for FxA servers to production
    • [ON TRACK] [FxA ENG] Have Nightly Desktop Firefox and Fennec use production FxA deployment
    • [Backend ENG] Storage/tokenserver deployed and in QA hands. Stable version for client devs to run against.
    • [Android ENG] Android onepw and native UI landed on mozilla-central
      • UI should look close to final
      • Sync should work in most states
      • [AT RISK] most error handling in place (surfaced UI; recovery from most error states)
      • [AT RISK] limited ability to administer account (change local password; recover from resetting remote password; able to administer sync data elections; ability to see sync status)
    • [Desktop ENG] Desktop setup flow and preferences UI landed on mozilla-central
      • styling may not be complete, but should be fully functional (assuming remote content is in shape)
      • includes "account" menu panel widget (bug 957460), entry point into FxA sync-setup (bug 957425), post-setup notification (bug 957436), and new Sync options (bug 957426)
    • [QA] Smoke Test Pass on Android Try Build
    • [QA] Smoke Test Pass using Sync 1.5 backend
    • [QA] Smoke Test Pass using real build of FxA Auth/Content Servers
    • [AT RISK] [Legal/Privacy] Unified ToS/Privacy Notice final drafts are completed as of 14 Jan. Cannot finalize until branding is confirmed
    • [AT RISK] [Branding] Needs to be confirmed. The "name" is blocking the completion of UX, Legal, Privacy tasks.
  • Fri, Jan 24
    • Go No Go decision to turn on FxA sync in Nightly (not hidden behind pref): https://wiki.mozilla.org/User_Services/Sync/Relaunch/GoNoGo
    • [UX] Design spec approved and locked
    • [ON TRACK] [PM] desktop/Android add messaging to nightly wrt new FxAcct, PII now exists, etc. Bug 959849
    • [ENG] Production Endpoints
    • [ON TRACK] [FxA ENG] Update FxA and TokenServer to use new assertion formats and verifier
    • [Backend ENG]
    • [Android ENG]
    • [Desktop ENG]
    • [QA] Final Test Pass, Load Test complete
  • Fri, Jan 31
    • [ON TRACK] [UX] Strings locked down
    • [FxA ENG]
    • [ON TRACK] [FxA ENG] l10N
    • [Backend ENG]
    • [Android ENG]
    • [Desktop ENG]
    • [QA] Buffer and GMC/GA testing
      • Ship Criteria
        • No 5 star or P1 bugs
        • Load 600 requests/sec
  • Fri, Feb 7
    • [UX]
    • [FxA ENG]
    • [ON TRACK] [FxA ENG] l10N
    • [Backend ENG]
    • [Android ENG]
    • [Desktop ENG]
    • [QA] Buffer and GMC/GA testing
      • Ship Criteria
        • No 5 star or P1 bugs
        • Load 600 requests/sec

Dependencies

  • [PM] MVP User Stories confirmed
  • [PM] Sync Migration Strategy confirmed
  • [Backend ENG] API needs to be locked down
    • once locked down, coding can be turned around in a week

Blockers

  • [Backend ENG] Need a staging sever for sync that matches current infrastructure
  • [QA] Auth Server API need to be final Issue #344
  • [QA] Migration issues need to be sorted when nightly goes live
  • [QA] Sync Storage server API needs to be final. Sync v1.5 is minimal change, risk is low.

Important Decisions

Communications

Mailing List

  • Sync-Tactics Mailing List 'Ground Rules' by Johnathan Nightingale
    • This list is for coordination, fast communication about changing circumstances, and next-step hand offs.
    • This list is NOT for UI or protocol design discussion - other channels exist if needed, and [January] 29 is going to be very focused on shipping today, not designing tomorrow.
    • If someone should be on this list who isn't, they can service-now themselves onto it. You are likewise invited to [service-now] yourself off of it, if it's not for you.

Service Now will process your add/drop requests to the sync-tactics mailing list.

IRC Channel

MozNet #sync-tactics

Meeting Notes Etherpad

https://etherpad.mozilla.org/sync-tactics

Q & A

On Migration

Q. What about existing Sync users migration to Firefox Accounts + Sync?
A. Good question. Minimizing disruption of existing Sync users is highly desirable, however Firefox Account + Sync technical, branding and marketing requirements and execution time remaining leave only messaging to minimize disruption for existing Sync users.
Note from rnewman: define "migration". We have no technical way to migrate user data, so we don't plan to do that. We do plan to "grease the skids", both technically and in the UX, to make the user transition to a Firefox Account less unpleasant. My goal is to have a user log in once only, and jump straight from working Sync to working Sync on all their devices. See https://services.etherpad.mozilla.org/sync-migration , and the Sync Migration tab in the UX flows.

On Marketing

Q. Does this relaunch include marketing sign-up/migration to Firefox Account + Sync in this release concomitant with the Australis introduction?
A. Per Johnathan and Chad's current best thinking, yes. Per Johnathan Nightingale, "It would be almost criminal to not introduce [Firefox Accounts + Sync] to the 100s of millions of users being introduced to Australis." Also, some technical thoughts on migration here: https://services.etherpad.mozilla.org/sync-migration

On Deadline

Q. Is the January 29th code freeze date a hard deadline?
A. Yes. We have an aggressive Firefox Account sign-up goal for 2014. If we miss the date, we lose substantial 2014 time to sign-up users. Also, we have a significant OEM to service. Finally, we’ve already waited a long time to ship user accounts. That said, as Mark Finkle notes, "My clarification is that we don't ship Fx29 on January 29th. We do need to have the code in a state that it can be merged to Aurora. That means a certain level of stability and string-freeze. We have every expectation that code will continue to be changed and uplifted as Fx29 rides the trains to a release on April 29th."

On Edge Cases

Q. Does this include Firefox desktop for Metro?
A. No.

On Setting Up Sync

Q. How do I setup Firefox Accounts and Sync in Firefox Nightly? See Setup Sync

Team

  • The cross-functional team and a list of what they own can be viewed here.

Reference