Post deployment alteration to firefox

From MozillaWiki
Jump to: navigation, search

Project Name

The purpose of this project is to list the various mechanisms that are used to modify Firefox post deployment - that is, anything that can modify the run time without needing a new client push. The intent is to identify these mechanisms and the owners. This is for anyone's consumption, but the customer is Lawrence mandel. Deliverable is the in the form of this document.

Project Introduction

  • Team Mailing list: ex: Firefox/dev-media or the general team mailing list (doesn't need to be project specific)
  • Team IRC Channel: ex: #loop or the general team channel (doesn't need to be project specific)
  • Summary of our plans for this year (links back to main page for the area - ex: platform or desktop have roll-up pages with very high level goals)
  • More detailed Roadmap, noting that the further out the more lose the targets are
  • Dependencies: feature, partner, resource, etc. - put links to other project pages.

Links to Current info

The Links wiki page is the central location for current focus, Roadmap, Metrics, UX, Marketing, tech-architecture, and more.

Roles and Responsibilities

The Contacts Page has the Roles and Responsibilities for this team, partner teams, and external partners involved in this project.

Meetings & Communications

Meeting Day of week Pacific Time Eastern Time Central European Time Vidyo Room Notes
"Stand-ups" Monday, Tuesday, Wednesday, Thursday 8:00AM - 8:30AM 11:00AM - 11:30PM 5:00PM - 5:30PM webRTC-Apps etherpad
"Planning" bi-weekly at the start of the iteration on ___ 8:00AM - 8:30AM 11:00AM - 11:30PM 5:00PM - 5:30PM webRTC-Apps etherpad
"Retrospective" Friday 8:00AM - 9:00AM 11:00AM - 12:00PM 5:00PM - 6:00PM webRTC-Apps etherpad
  • Links to mailing list or all communication channels

Projects

Name Owner Sign off owner Mechanism for update Notes
Self Healing
Add on Block list Georg Fritzsche update block list
Graphics Block list Milan Sreckovic update block list
Security OCSP Richard Barnes root cert management
Synch Migration Prompt
Add on hot fix
Tiles
Hello
FHR (V1)
Self Healing
OpenH264 and CDM modules
Pocket
Universal search Nick Chapman
Security policy updates


Themes

We should be aware at all times when we are affecting the user experience/quality

Risks

  • that this list will incomplete, this is being mitigated by working with the individual teams and asking for peer help.

Current

Iteration Release#.Iteration - Uplift Date

  • This doc should be kept up to date on an ongoing basis as new processes or properties are pout into place, as as result this will be a WIP ongoing.
  • No dev deliverables

Past

Iteration Release#.Iteration - Uplift Date

  • Ideally these aren't just queries, but human readable so folks know what is coming in x release
  • Pipeline of work that has been completed and moving through Aurora and Beta to release - EXAMPLE

Product Backlog

Key Bugzilla Queries

The goals of the Product Backlog and dynamic Planning are to:

    • Simplify prioritization & planning so the team is always working on the most important features.
    • Improve visibility to everyone to clear priorities - so we make the best decisions about the direction of the product (call out risks early, relative priorities, trade-offs).

Triage Guidelines

The Product Backlog is continually maintained by the Hello Management team to ensure new priorities are available for each Sprint Planning meeting.

  • Priorities follow this Standard:
    • Priority 1 - Blocker, must-fix before shipping.
    • Priority 2 - Major impact, considering severity × probability. Not a blocker for shipping.
    • Priority 3 - Average Bug. definitely a problem, but doesn't stop someone from using the product.
    • Priority 4 - Minor or polish bugs that are real issues (especially in aggregate) and annoying.
    • Priority 5 - Low-impact. something we'd fix, but mostly only bothers the discerning user. Little impact on usability.
  • RANK: As priority buckets start to have a large amount of bugs in them, the Rank field can be used to call attention to higher or lower rank and provide a way to sort easily in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - default to mid-range value.
    • P1 Rank options=1-19, default 15
    • P2 Rank options=20-29, default 25
    • P3 Rank options=30-39, default 35
    • P4 Rank options=40-49, default 45
    • P5 Rank options=50-59, default 55
    • any that we don't think we can get to in the next 6 months should go in "backlog-" area

  • The Firefox-backlog flag is used to track bugs that are approved for the Backlog "+"
  • QE-Verify is a flag that developers should be setting on bugs they are working on. This is used for QE to filter which bugs they check
    • "+" means that QE should look at the bug and it can be verified with human eyes
    • "-" means QE should not look at
      • Typically goes with in-testsuite set to "+", to show testing via another method.
  • "Points" should be set when known (if nothing set - assumed a "1" or very small). Most relevant if taking a bigger bug so we know when bugs are large bits of work.
  • "Iteration" should be updated when a bug is being worked on during a particular Sprint.

Filing a bug

    • Open a bug under Product:"Loop" || Component: "General" or "Client"
    • Hello team reviews for inclusion into a release backlog every 2 weeks, and will mark "firefox-blocking" accordingly
  • If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+
    • Before it can be given a Rank it should:
      • be in an actionable state
      • for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing
      • for feature requests or enhancements, it means that there's a clear problem statement or suggestion
      • has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months

Definition of Start & Done

Start

  • It's possible not all these items need to be defined or agreed on by all members of the team, but the lack of these items should indicate red flags)
    • PRD's have been created
    • User stories created
    • UX created / reviewed
    • Above requirements are understood (including dependencies such as: access to staging, new hardware, skill set development etc)
    • Dev, QE and PM resources are mapped to intended goals
    • schedules create and agreed on
      • Shell put link to "Critical Path" excel google doc showing timing/work impact across releases.

Done

  • The Definition of Done ensures a potentially shippable product increment is released at the conclusion of a release cycle.
    • may differ by team - this is just an example

  • A potentially shippable product increment means compliance with the work's individual acceptance criteria and not the full story under development.

Project Health

IOS,Desktop Yellow Risk.png

  • (get central location for graphics from Erin)

Include clear, executive level summary that will be included at the [mana page overall view level:

  • for company goal x, we are in _____ state because ______. Please consider ______(propose fix or adjustment of goal).
  • for release goal for ______ , we are in _____ state because ______. Please consider ______(propose fix or adjustment of goal).

Status Reports

example from Jenn's

  • This is an area we want to dig into further - if each team could summarize what they know in a consumable format - then one person could give an up to date overview of the larger project as needed.

Templates

Go to Templates page for sample etherpads, invite details, etc. for the following types of meetings.

  • stand-ups (daily, weekly, or other)
  • retrospective invites with questions/structure of the meeting in etherpad
  • cross-team/company meeting invites/etherpads to keep efficient and only when needed
  • postmortems

Archive

as iteration information or links get old or if this is replacing an older page and we don't want to lose path to the information...link to an archive page from here.

Reference materials

Sample bugzilla Queries

Please add your queries and descriptions of what they are doing here to help other create without having to learn bugzilla!

  • Queries to pull info for an iteration

Tools

  • area that needs more info
  • Aha - would love to get Romain's fantastic starter deck here and possibly time for him to go through with other team PM's.
  • Trello

https://waffle.io/mozilla/payments

Reading

Bugzilla Agile fields

Several Fields have been added this year into bugzilla for Agile tracking that you may want to leverage:

  • Iteration: right now this has the 3 previous and future 2 week sprints for Firefox release schedule - shows iteration (40.1) and uplift date.
  • Points: Fibonacci series 1,2,3,5,8,13]
  • Rank: see Rank use description under Triage Guidelines
    • Rank will not show under your Product::Component unless you request it by filing a bug with "bugzilla.mozilla.org :: Administration". You need to give a list of acceptable editors (usually the folks that can triage).

Product Backlog

  • There needs to be a way to mark the bugs you have triaged versus not. Firefox uses the flag for "firefox-backlog".
  • If you are not strictly desktop, there's also an option to add you team to the blocking-flag "backlog".
    • ex: the webRTC team uses webRTC+ for bugs they are accepting and "parking lot" for ones they are not. The queries are based on product/component - so multiple teams can use "parkinglot" and just request a new tag <team name>+ tag by filing a bug under "bugzilla.mozilla.org :: Administration"
  • ex: Bugzilla Ranked "Firefox-backlog+" list
    • Add the "Rank" Column to your results and sort on Rank to view order of work.
      • The option to "Change columns" is at bottom of search results
    • Search is based on "Flags" - "contains the string" - firefox-backlog+
  • Un-triaged bugs
    • Search is based on not having the Firefox-backlog+ or Firefox-backlog-