<div dir="ltr"><br id="gmail-docs-internal-guid-81dfa610-1bad-4915-f4d2-67a7c7737112"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Hi All,</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Before we get </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">too</span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"> far into all the exciting new opportunities that 2018 has to offer, I wanted to take a moment to reflect on our achievements with Firefox Accounts over the previous year.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Our first deploy of 2017 was FxA train-77, and we closed the year by deploying train-102.  That's 25 trains worth of goodness, with far too many features and fixes and improvements for me to cover in detail here.  But after going back through 25 "What's New in FxA" emails, these were some of the highlights for 2017:</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Connect another device:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">We focussed heavily on getting users to "connect another device" after creating their Firefox Account, since this has proven to be a good indicator of user retention.  We shipped a variety of post-verification landing pages, worked with the Lifecycle Marketing team on email campaigns, added the ability to SMS yourself an install link, figured out how to deep-link to the sign-in form, and even prototyped a QR-code-based pairing flow.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">At the start of year, only around 8% of new account holders would connect a second device in their first seven days after registration.  Through a lot of experimentation, iteration, polish and plain old hard work, we managed to double that number over the course of 2017.  This incredibly satisfying graph shows the rate now sitting comfortably at 16%:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">  </span><a href="https://sql.telemetry.mozilla.org/queries/50227/source#134907" style="text-decoration:none"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre">https://sql.telemetry.mozilla.org/queries/50227/source#134907</span></a></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Change primary email:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Early in 2017 we decided it was time to bite the bullet and ship a complex but important feature: the ability to change the primary email address on your account.  We had heard from too many users who had lost access to their original email address for one reason or another, which forced them into creating a brand new Firefox Account.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">We expected this to be a big refactor, but I'm not sure we were prepared for just </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">how </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">big it would turn out to be, touching everything from desktop sync data storage to our core security model to our session verification infrastructure.  Nonetheless, we pushed through and have a working implementation ready for general release, with rollout planned for this month.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Going Faster:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">We invested a lot of effort in our test and deployment infrastructure this year, with the explicit aim of improving our ability to iterate on experiments and learn from real user feedback.  We migrated our deployment infrastructure to Dockerflow, which improved turnaround time for prod, stage and dev deploys.  We added CI hooks to automatically deploy feature branches to a dev environment for easy testing.  We got comfortable rolling out new work behind feature-flags, and cutting point releases to support it.  And we vastly improved the stability and speed of our test suites.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Early in 2017 Alex put the challenge that we should be able to run one A/B test per week, and at the time it seemed wildly ambitious.  But we've since used these new capabilities to ship and iterate on experiments around confirming your password on account creation, adjusting the visual state of form buttons, and guiding the user to the appropriate form by asking for their email up-front.  We've got more to do, but running an A/B test every week doesn't seem quite so outlandish anymore.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Metrics:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The only way to go faster with any degree of confidence is to </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">measure </span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">faster, so hand-in-hand with our deployment pipeline changes, we invested heavily in our metrics infrastructure over the past year.  Our re:dash charts can now explicitly query against experiment cohorts, and they include new metrics for application performance and for email deliverability.  We prototyped and rolled out a brand new metrics integration with Amplitude, which has dramatically improved the speed with which we can turn around ad-hoc metrics queries.  I don't think I will ever forget the sheer joy of watching the success of the Firefox Quantum release roll in in real-time in our account creation metrics!</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">We have also started running a regular Shield survey to directly understand user satisfaction.  The results so far have fluctuated around 4.5/5 stars, exceeding our initial expectations.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">As usual, new metrics have highlighted new areas for improvement, and that's been especially true for our performance-related metrics.  I'm looking forward to the ability to be more deliberate about application performance in 2018.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Quality Backlogs:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">It's hard to put a name to this, and weird to call out "quality" as a top-level work item; after all, aren't we always supposed to care about product quality?  But 2017 saw us make deliberate efforts to focus on product quality, using explicit "bug backlog" milestones to fit ongoing quality work into our planning process.  Some successful quality-driven backlog themes from 2017 included:</span></p><br><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The "crouton flow" backlog, which helped us focus on high-impact UX quality bugs in the leadup to the Firefox Quantum release.</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The mobile quality backlog, which helped us collaborate with the iOS team to improve the signin experience and bring more account management features to that platform.</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The email-deliverability work, which helped us to measure and understand our delivery rate across major email providers, and let us fix a persistent issue with Outlook flagging our emails as spam.</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The device-manager work, which helped us provide users with much more visibility into the activity on their account.</span></p></li></ul><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Emojifying Device Names:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">When you describe it as "support emoji in sync device names" it doesn't sound like much, but geez…!  This simple-sounding feature proved to be quite an adventure in the intricacies of utf8-handling in MySQL, and led to us revisiting the way all our database migrations are done.  As a result, we now have the tools and the confidence to approach some other thorny database migrations that were previously put in the "too hard" basket.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Encryption Keys for OAuth Reliers:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">The Firefox Accounts project started life with a single consumer and a singular focus: to provide Firefox Sync with a great login experience while provisioning secure encryption keys.  In 2017 we laid the groundwork for expanding this service to a diverse ecosystem of other consumers, working with the Lockbox and Notes teams to design a protocol for per-application encryption keys backed by the same great FxA login experience.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Meta:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Finally, we invested a lot in meta-level process work over the course of 2017.  We welcomed a new Engineering Program Manager in Julie, who quickly became an integral part of the team.  We experimented with different ways to do OKR checkins and retrospectives, and have settled into a regular rhythm that helps us focus and prioritize our work.  We relentlessly refactored our "feature doc" process to ensure alignment between engineering, product, UX and QA while avoiding pointless busywork.  And we tried out some collaborative strategy planning with the "playing to win" framework, to come up with a shared vision for 2018 and beyond.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">Thank you all for a fantastic year!  I'm very excited about building on this work with all the possibilities that 2018 has to offer.  But that's for a separate email…</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">  Cheers,</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre">     Ryan</span></p></div>