Changes

Jump to: navigation, search

Firefox/Shield

5,200 bytes added, 17:33, 16 August 2016
Created page with "Shield is a system that addresses user attrition and satisfaction in Firefox by providing a fast and powerful way for Firefox to interact with our users. User-facing products..."
Shield is a system that addresses user attrition and satisfaction in Firefox by providing a fast and powerful way for Firefox to interact with our users.

User-facing products powered by Shield include:

; [[Firefox/Shield/Shield_Studies|Shield Studies]]
: Recruits users to participate in testing new features and ideas that help us validate product decisions. Our users tell us what to ship.
; [[Advocacy/heartbeat|Heartbeat]]
: Gathers feedback from users for us to better understand what users find helpful and useful
; Self Repair
: Detects problems with Firefox and suggest fixes to the user
; Contextual Feature Recommendation (Name TBD)
: Allows users to discover features and addons based on how they use the product

== Status ==

=== Core Team ===
* '''Project Owner''': Gregg Lind [:gregglind]
* '''Product Manager''': Matt Grimes [:Matt_G]
* '''Data Steward''': Rebecca Weiss [:rweiss]
* '''Development''': Michael Cooper [:mythmon], Michael Kelly [:Osmose], Web Engineering - Systems
* '''Operations''': Daniel Thorn [:relud], Benson Wong [:mostlygeek]
* '''QA''': Chris Hartjes [:chartjes]
* '''Status''': Launched / Implementation
* '''Scheduled for''': 2016

=== Technical Links ===
* [https://mana.mozilla.org/wiki/display/SVCOPS/SHIELD Server Ops Wiki]
* '''Code'''
** [https://github.com/mozilla/normandy Service Repository]
*** [http://normandy.readthedocs.org/en/latest/ Service Documentation]
** [https://github.com/mozilla/normandy-addon System Addon Repository]
** <s>[https://github.com/mozilla/normandy-actions Action Repository]</s> (Actions have been moved into the service repo)

== Rationale ==
User configuration problems cause attrition. Common issues we've seen include:

* Search engine hijacking
* Homepage hijacking
* Misconfigured preferences

Currently, the tools that we have to respond to these issues are inadequate:

* One-off solutions aren't easily repeatable and require a lot of coordination.
* Hotfixes require a lot of people and time to build, review, and ship, and are shipped to ''everyone''.
* Firefox Reset can fix many issues, but it's blunt (resets many things at once), hidden (so users don't accidentally trigger it), and user-driven.

Attackers causing these issues can move faster than us. To keep up, we need something new that can:

* Ship fixes outside of the trains, with a small amount of effort and time to ship
* Measure the effectiveness of fixes
* Target only affected users, control rollout, and make reverting easy
* Provide the power to fix things, but in a constrained, secure way

=== Solution ===
SHIELD addresses this problem with a client-side component that pulls potential fixes ("recipes") from a server on a regular basis. It allows us to quickly control the delivery of recipes outside of the trains. The client-side component lets us constrain what actions are available to recipes for security purposes, and also provides a good point for testing the functionality of our fixes without removing our ability to ship fixes fast.

In the future, we can use Shield to serve up recipes that do more than just fix known issues, such as suggesting actions that improve user experience or collecting feedback from users.

=== Outcome ===
To be successful, SHIELD must:

* Decrease user attrition
* Increase usage
* Improve user experience

We will leverage the existing Telemetry system to measure our progress on these goals.

== History ==
* '''June 2014''' - mconner files [https://bugzilla.mozilla.org/show_bug.cgi?id=1031506 a tracker bug] for enhancing FHR to proactively detect and solve problems for users.
* '''December 2014''' - bsmedberg files [https://bugzilla.mozilla.org/show_bug.cgi?id=1111016 bug 1111016] for implementing the smallest-possible set of changes necessary to support [https://support.mozilla.org/en-US/kb/rate-your-firefox-experience-heartbeat Heartbeat] (a prompt shown to users asking them to rate Firefox) and Self-Repair (a minimal version of the problem-solving functionality, described in detail in dependent bugs).
* '''Early 2015'''
** UITour is enhanced to support Heartbeat prompts, sending user responses to input.mozilla.org.
** Self-Repair is implemented as a set of static files hosted on AWS that Firefox retrieves.
* '''Late 2015''' - Self Repair is renamed to SHIELD since the project covers more than just repairing Firefox. The name covers the server that deploys configuration files (recipes) and the in-product component that executes the recipe.
** Example 1: The Shield server deploys a recipe to a client indicating that the user should be included in the daily Heartbeat sample. The in-product component responds by offering the Heartbeat prompt.
** Example 2: The SHIELD server matches a “preference repair recipe” to the user configuration, and returns it. Firefox runs the recipe steps to fix the broken preference.
* '''February 2016''' - Development begins on the SHIELD backend service, [https://github.com/mozilla/normandy Normandy]. Work on the system add-on begins as well.
* '''April 2016''' - Normandy replaces the self-repair server at the domain [https://self-repair.mozilla.org self-repair.mozilla.org]. Development on the system add-on continues.
Confirm
447
edits

Navigation menu