Changes

Jump to: navigation, search

Firefox/Shield

2,503 bytes added, 19:12, 9 August 2017
Complete re-write and revision to reflect State of Shield in Aug 2017
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.
* If you are a Firefox Userwith questions about the Heartbeat prompt, go to [https://support.mozilla.org/en-facing products powered by US/kb/rate-your-firefox-experience-heartbeat Heartbeat and Shield includeUser support page]* Engineers: see [[#engineering]]* Product managers: see [[#process]]* Release managers: see [[#launchSchedule]]* University Researcher: see the [[#contact]]
== SHIELD PROGRAM ==  === Shield Turns Superstition into Science ===Shield is a Firefox user testing platform for proposed, new and existing features and ideas.Broad ApplicationsThe Shield system addon targets specific subsets of users, enables features and messaging, and measures the results of those interventions to evaluate the effect of the features/messages on measures (retention, uptake, performance, crashiness) to create insights for the Firefox product and Mozilla as an organization.  === Supported Study and Messaging Designs === Shield supports these Study and Outreach Designs ; Preference-flip to control feature; Preferenc-flip to control (disabled by default) system addon; Add-on Based study (opt-in) [[Firefox/Shield/Shield_Studies|Shield Studies]]; Add-on Based Study (opt-out) [[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.
; [[Firefox/Shield/Heartbeat|Heartbeat]]
: Gathers feedback from users for us to better understand what users find helpful and useful
== Status ==; [[Firefox/Shield/Heartbeat|Heartbeat]] Star Rating with action link; Messaging Study with action link to external site (survey, Brain Games, interface testing, external user task tool); Contextual Feature Recommendation: Customized action after user event; Pioneer: On-going opt-in cohort for deeper data collection ; Rollout preference study
=== Core Team ===
* '''Project Lead''': Gregg Lind [:gregglind]
* '''Product Owner''': 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], Adrian Florinescu [:aflorinescu], Ovidiu Boca [:Ovidiu]
* '''Status''': Launched / Active Development
=== Technical Links Choosing A Design for Evaluating Features === Issues in design choice: * Code deployment: in-tree (either as native code, or system addon) vs. Extension (Legacy Extension or Addon)* Sensitivity of data / probes collected. In particular, full urls usually require an opt-in design* Speed vs. fidelity: if possible, use Images, fake prototypes, etc FIRST to do validation. Gather data using **surveys** of Firefox users, Other Browser users or whoever. Deciding: * Just an Idea: Do surveys! Minimal wireframe prototypes! Pile-sort! Don't build! Identify needs, user models, and terminology before solving and building!* if you are already in tree (mozilla-central), including your probes, use "pref-flip"* Not in tree, use an opt-out (if data is benign).* Not in tree, need more sensitive data, needs opt-in (at the risk of recruitment bias), choose opt-in (one-off study) or Pioneer. === Alternatives To Shield === Other methods support these designs better: * early stage ideation: simple hallway / cafe testing and paper prototypes* You need Chrome / IE / Edge users - we can recruit those using other methods* You want in-depth narrative data.   Other methods for launching and testing features or messages include * AMO addon* Test Pilot* Snippets  ==<span id="process" > </span>Launch a Shield Study == === Overview: File Bug, Send email to Release-Drivers, tell Shield Team to start recruiting. === * [https://docs.google.com/document/d/16bpDZGCPKrOIgkkIo5mWKHPTlYXOatyg_-CUi-3-e54/ How to Launch A Pref Flip Study]* [https://docs.google.com/document/d/1hOMjZ7l1K0HL8DUp7HCr8BeRO7NGw0SwYjK2nfwtRJQ/edit# How to Launch an opt-in / opt out study]* Coming soon -* How To Pioneer  ==<span id="launchSchedule" > </span>Launch Schedule, Backlog, In Progress == * [https://docs.google.com/spreadsheets/d/1H5Inn8KHfQVMFeO4-y3UID4D3HeKb6Mq6mXHJsCKu5M/edit#gid=1474584802 Google Sheet of Proposed and Inflight]* [https://gregglind.github.io/x-shield-inflight-dashboard/ Pref-flip inflight Dashboard]* [https://moz-experiments-viewer.herokuapp.com/ Experiments Data Viewer]* [https://sql.telemetry.mozilla.org/queries/2118 System Add-on Installs by Version/Channel] ==<span id="engineering" > </span>Engineering and Building == === Shield System Addon - downloads, interprets and runs recipes === The Shield system addon pulls a list potential "recipes" from the Normandy server on a regular (daily) basis. It allows us to quickly control the delivery of recipes outside of the trains. The addon then filters recipes based on client configuration (channel, locale, geo, addons, prefs). 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. Read details at: [http://normandy.readthedocs.io/en/latest/dev/recipe-client-addon/index.html Shield client addon concepts]  === Normandy - User Profile Matching and Recipe Deployment === * [http://normandy.readthedocs.io/en/latest/user/filter_expressions.html Filters for Shield Targeting], included telemetry ping traits, addons list, and other "point in time" profile features.
* [https://mana.mozilla.org/wiki/display/SVCOPS/Normandy Server Ops Wiki]
* [https://github.com/mozilla/normandy Normandy Github Repository]* [https://github.com/mozilla/normandy/issues Normandy Issue Tracker]** There's a [https://bugzilla.mozilla.org/** describecomponents.cgi?product=Shield "Shield" Bugzilla product] if you want to file bugs that depend on other Bugzilla bugs or otherwise need to integrate with Bugzilla.
* [http://normandy.readthedocs.org/en/latest/ Technical Documentation]
* Monitoring Dashboards
** [https://sql.telemetry.mozilla.org/queries/2118 System Add-on Installs by Version/Channel]
=== Workflow ===* [[Firefox/Shield/Roadmap|Development Roadmap]]* [https://github.com/mozilla/normandy/milestones Development Sprints]* Useful Issue Filters** [https://github.com/mozilla/normandy/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20-label%3A%22priority%3A%20P1%22%20-label%3A%22priority%3A%20P2%22%20-label%3A%22priority%3A%20P3%22%20 Untriaged Issues]** [https://github.com/mozilla/normandy/issues?qStudies Addon Utils =is%3Aissue+is%3Aopen+label%3A%22status%3A+ready+for+work%22+no%3Aassignee Open, Unassigned Issues]** [https://github.com/mozilla/normandy/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20-label%3A%22status%3A%20ready%20for%20work%22%20 Issues in need of Mockups/Specs]
== Rationale ==* Single File `.jsm`.User configuration problems cause attrition* Embed these inside your Legacy Addon or Embedded WebExtension addon. Common issues we've seen include* [https://github.com/mozilla/shield-studies-addon-utils Shield-Studies-Addon-Utils on Github]* if you ARE NOT ON VERSION 4+, please stop :)* No more Jetpack / Addon-sdk!
* Search engine hijacking* Homepage hijacking* Misconfigured preferencesExperienced Shield Study Authors Include:
Currently, the tools that we have to respond to these issues are inadequate:* Gregg Lind* Kamyar Ardekani* Benton Case* Luke Crouch* (others!)
* 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:==<span id="contact"> </span>Contact Us ==
* 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=== Not Satisfied? For all additional questions or live support ===
=== Solution ===SHIELD addresses this problem with a client-side component that pulls potential fixes ("recipes") from a server Visit our SLACK Channel: #shield on a regular basismozilla. It allows us to quickly control the delivery of recipes outside of the trainsslack. The client-side component lets us constrain what actions are available to recipes for security purposes, com and also provides a good point for testing the functionality of our fixes without removing our ability to ship fixes fastsay "help".
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 Shield Core Team ===To be successful* '''Project Lead''': Gregg Lind [:gregglind]* '''Product Owner''': Matt Grimes [:Matt_G]* '''Data Steward''': Rebecca Weiss [:rweiss]* '''Development''': Michael Cooper [:mythmon], SHIELD mustMichael Kelly [:Osmose], Web Engineering * Systems* Decrease user attrition'''Operations''': Daniel Thorn [:relud], Benson Wong [:mostlygeek]* Increase usage'''QA''': Chris Hartjes [:chartjes], Adrian Florinescu [:aflorinescu], Ovidiu Boca [:Ovidiu]* Improve user experience'''Status''': Launched / Active Development
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.* '''December 2016''' - * [https://bugzilla.mozilla.org/show_bug.cgi?id=1308656 SHIELD System Add-on lands in mozilla-central]* '''2017''' * Shield adds pref-flip studies, v4 of shield utils and many other things.
35
edits

Navigation menu