Firefox/IterativeDevelopment: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(201 intermediate revisions by 5 users not shown)
Line 7: Line 7:
* '''Transparent - '''Who is working on what, when, and why.
* '''Transparent - '''Who is working on what, when, and why.
* '''Predictable and Repeatable - '''Know what to expect from the process.
* '''Predictable and Repeatable - '''Know what to expect from the process.
* '''Inclusive - '''Include all key participants (Eng, UX, QA, Product) and stakeholders in the process.
* '''Inclusive - '''Include all key participants (Eng, UX, QA, Security, Product) and stakeholders in the process.
* '''Clear Direction and Decision Making - '''Know what we should do and who makes the call.
* '''Clear Direction and Decision Making - '''Know what we should do and who makes the call.
* '''Clear and Stable Priorities - '''Be clear on what is most important for each iterative cycle.
* '''Clear and Stable Priorities - '''Be clear on what is most important for each iterative cycle.
Line 13: Line 13:
<p> </p>
<p> </p>


==Iteration 31.2 Performance==
==Iteration 40.2 Performance==
<p> </p>
<p> </p>
'''Note:'''  Next update on Tuesday April 29 following the conclusion of Iteration 31.3
'''Note:'''  Next update on Tuesday May 12 following the conclusion of Iteration 40.3
<p> </p>
<p> </p>
At the conclusion of Iteration 31.2:
===Iteration Production Goal===
* Team surpassed the IT 40.2 production goal of 182 points and completed 211 points.
* The production goal for IT 40.3 is 114 points.
** '''Note:''' Iteration production goal has been lowered as 7 individuals have moved to the FX Search Team.
[[File:40-2-ITGOAL.png]]
<p> </p>
<p> </p>
* Team completed 191 points across 48 bugs.
 
** Points completed increased by 103 from the previous iteration.
===Release Production Goal===
** Bugs completed increased by 20 from the previous iteration.
* Given the 211 points completed in IT 40.2 the team is currently ahead by 19 points in achieving the Release 40 production goal of 478 points.
** '''Note:''' Release production goal has been lowered as 7 individuals have moved to the FX Search Team.
[[File:40-2-RGOAL.png]]
<p> </p>
<p> </p>
* Team carried over 171 points across 25 bugs to the next iteration.
 
** Point carry over increased by 29 from the previous iteration.
===Velocity Range===
** Bug carry over decreased by 2 from the previous iteration.
* Team achieved a median velocity of 159 points in IT 40.2 with a 90% likelihood the actual points completed in IT 40.3 will fall between 54 and 180.
** '''Note:''' Forecast velocity range has been lowered as 7 individuals have moved to the FX Search Team.
[[File:40-2-RANGE.png]]
<p> </p>
<p> </p>
* Team accomplished a 53% close rate during the iteration.
 
** Closure rate increased by 39% from the previous iteration.
===Completion Rate===
<p> </p>
* 116% of IT 40.2 point target completed which exceeded the 'success' range.
* 48 bugs completed during the iteration have been verified by QA.
[[File:40-2-ICOMPLETION.png]]
** 1 resolved bug could not be verified by the conclusion of the iteration and carried over to the next.
* 80% of Release 40 point target completed to date.
<p> </p>
[[File:40-2-RCOMPLETION.png]]
* Team Velocity: '''NA - Available following the completion of five iterations'''
<p> </p>
* Velocity Range:  '''NA - Available following the completion of five iterations'''
<p> </p>
<bugzilla>
    {
"include_fields": "id, summary, status, assigned_to, whiteboard",
"whiteboard": "it-31c-30a-29b.2"
    }
</bugzilla>
<p> </p>
<p> </p>
===Completed Work===
* [http://tinyurl.com/m964uw7 View In Bugzilla]


==Product Backlog==
==Product Backlog==
Line 52: Line 53:
* Improve forecasts so that the stakeholders make the best decisions about the direction of the product.
* Improve forecasts so that the stakeholders make the best decisions about the direction of the product.
<p> </p>
<p> </p>
The Product Backlog is maintained by the Senior Management team (Chad, Gavin, Madhava) at the Product Backlog Refinement Meeting to ensure new priorities are available for each Sprint Planning meeting.
The Product Backlog is maintained by the Senior Management team (Chad, Gavin, Madhava) to ensure new priorities are available for each Sprint Planning meeting.
<p> </p>
<p> </p>
'''Product Backlog:'''  [http://tinyurl.com/mzxrgre View Bugzilla]
'''Product Backlog:'''  [http://tinyurl.com/mzxrgre View Bugzilla]
<p> </p>
<p> </p>
===Backlog Triage===
 
<p> </p>
==Iterations==
'''Triage Guidelines'''
<p> </p>
<p> </p>
These guidelines should help determine whether a bug should be included in the Firefox desktop team's backlog.
'''Note:'''  Next update on Tuesday May 12 following the conclusion of Iteration 40.3
<p> </p>
<p> </p>
These are guidelines, not strict rules. Ultimately the decision rests on the judgement of the triage teams, and exceptions are possible. They should however be uncommon.
The Iteration Backlog is a collection of priority work the team has selected to work on in a two-week iteration.
<p> </p>
<p> </p>
To be included in the Firefox desktop backlog, a bug should:
===Current Iteration - 40.3===
<p> </p>
<p> </p>
* be in an actionable state
* '''Duration:''' Tuesday April 28 - Monday May 11
** for defects, the problem is ready for engineering or UX: diagnosis, measurement, design, or fixing
* '''Iteration Backlog:''' [http://tinyurl.com/kpc5kfd View in Bugzilla]
** for feature requests or enhancements, it means that there's a clear problem statement or suggestion
<p> </p>
<p> </p>
* have a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months
===Next Iteration - 41.1===
** this is a judgement call, obviously, and so the triage teams will need to learn to make these decisions over time
* '''Duration:''' Tuesday May 12 - Monday May 25
<p> </p>
<p> </p>
* be within the general area of ownership/responsibility of the Firefox team (engineering and UX)
===Upcoming Iterations===
** this means e.g. platform bugs that are outside of our area of expertise/ownership should generally not be added to our backlog
Release plan when each Firefox version goes to Central, Aurora, Beta, & Release:  [https://wiki.mozilla.org/RapidRelease/Calendar View Rapid Release Schedule]
<p> </p>
<p> </p>
'''Triage Backlog:'''  [http://tinyurl.com/nd2awrh View Bugzilla]
'''Firefox 41 Release'''
* '''Iteration 41.2:'''  Tuesday May 26 - Monday June 8
* '''Iteration 41.3:'''  Tuesday June 9 - Monday June 29
** ''Note: IT 41.3 is a 3-week iteration.''
<p> </p>
<p> </p>
'''Adding Bugs to Triage'''
'''Firefox 42 Release'''
* '''Iteration 42.1:'''  Tuesday June 30 - Monday July 13
* '''Iteration 42.2:'''  Tuesday July 14 - Monday July 27
* '''Iteration 42.3:'''  Tuesday July 28 - Monday August 10
<p> </p>
<p> </p>
* Click on 'set flags'
* Set 'firefox-backlog' flag to '?'
* Desktop Triage Team will review for inclusion in the Product Backlog


==Iterations==
==Communication==
<p> </p>
<p> </p>
'''Note:'''  Next update on Tuesday April 29 following the conclusion of Iteration 31.3
===General===
<p> </p>
<p> </p>
The Iteration Backlog is a collection of Work that the team has committed to implement, test and deliver in a two-week iteration.
* '''Team Mailing list:''' [[Firefox/firefox-dev]]
* '''Team IRC Channel:''' [irc://irc.mozilla.org/fx-team #fx-team]
<p> </p>
<p> </p>
'''Current Iteration - 31.3:  Tue 04/15/14 - Mon 04/28/14'''
 
===Sprint Planning Meeting===
<p> </p>
<p> </p>
<bugzilla>
{| class="wikitable"
    {
|-
        "include_fields": "id, summary, status, assigned_to, whiteboard",
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Time zone conversions
        "whiteboard": "it-31c-30a-29b.3"
|-
    }
| "Morning" || Tuesdays || 8:00AM - 9:00AM || 11:00AM - 12:00PM || 5:00PM - 6:00PM || [http://arewemeetingyet.com/Los%20Angeles/2014-04-29/8:00/w/Firefox%20Planning/Status%20Meeting AWMY]
</bugzilla>
|-
| "Afternoon" || Tuesdays || 4:00PM - 5:00PM || 7:00PM - 8:00PM || 1:00AM - 2:00AM || [http://arewemeetingyet.com/Los%20Angeles/2014-05-20/04:00/w/Firefox%20Planning AWMY]
|}
 
* '''Duration:'''  1 hour
* '''Vidyo Room:'''  "Firefox"
* '''Iteration Backlog:''' [https://docs.google.com/spreadsheets/d/10sr6YhDNmO4oimlNtxDZ5fe6IaQKmZ7gqT-ZWqAygrI/edit?usp=sharing View Priority List]
<p> </p>
<p> </p>


==Definition of Done==
===Iteration Performance Reports===
The Definition of Done ensures a '''potentially shippable''' product increment is released at the conclusion of a release cycle.
<p> </p>
<p> </p>
Potentially Shippable Guidelines:
'''Note:'''  Next update on Tuesday May 12 following the conclusion of Iteration 40.3
* Means Tested and Verified
* Mean Incremental Progress
<p> </p>
<p> </p>
'''Tested and Verified'''
* View Current Report - [https://wiki.mozilla.org/Firefox/IterativeDevelopment/IT-40.2PerformanceReport Iteration 40.2:  Tuesday April 14 - Monday April 27]
<p> </p>
* [https://wiki.mozilla.org/Firefox/IterativeDevelopment/PerformanceReportArchive View Report Archive]
'''Note:'''  Full Desktop Firefox release testing workflow and process - [[QA/Desktop_Firefox/Walkthroughs/Iteration_Development|View Detailed Walkthrough]]
<p> </p>
* QA will be flagged to test work marked as 'Resolved' within the iteration.
* Any defects found will 'Reopen' the work subject to testing.
* If QA does not discover any defects the work will be marked as 'Verified'.
* Only 'Verified' work will merge into a build at the conclusion of the release cycle.
<p> </p>
'''Product Increment'''
* A potentially shippable product increment means compliance with the work's individual acceptance criteria and not the full story under development.
<p> </p>
<p> </p>


==Bugzilla==
==Contribute to Firefox Desktop==
<p> </p>
The following format is used to maintain consistency in how bugs are filed:
* p= (point value assigned to the bug)
* s= (the iteration the bug is being developed in)
* r= (the target release of the bug under development)
* [story] (collection of related bugs required for the completion of a feature)
<p> </p>
<p> </p>
 
===Good First Bugs===  
==Roles and Responsibilities==
{| class="wikitable fullwidth-table"
! Role !! Contacts !!
|-
| Project Champion ||
* [https://mozillians.org/u/johnath/ Johnathan Nightingale]
|-
| Program/Project Management
* Monitor team and project performance
* Submit status report at conclusion of each Iteration
* Organize and facilitate Triage and Planning meetings
* Guide team through the practices and procedures of the project
* Ensure team and project impediments are addressed
|
* [https://mozillians.org/u/lmandel/ Lawrence Mandel]
* [https://mozillians.org/u/mmucci/ Marco Mucci]
* [https://mozillians.org/u/jchaulk/ Jenn Chaulk]
|- 
| Product Manager
* Define and document product features
* Maintain Product Backlog, Feature Stories up-to-date and prioritized
* Review Iteration Build Release
|
* [https://mozillians.org/u/cweiner/ Chad Weiner]
* [https://mozillians.org/u/clarkbw/ Bryan Clark]
|-
| UX/Design
* Self-organizing and self-managing; team determines how much work they can commit to from the Product Backlog during each Iteration Planning meeting
* Deliver UX assets/work necessary to progress work in backlog
* Responsible for attending Planning meetings
* Report impediments to the Project Manager
* Keep work item, Feature Story and Epic status up-to-date
|
* [https://mozillians.org/u/madhava/ Madhava Enros]
* [https://mozillians.org/u/Boriss/ Jennifer Morrow] (Boriss)
* [https://mozillians.org/u/zfang/ Zhenshuo Fang]
* [https://mozillians.org/u/sevaan/ Sevaan Franks]
* [https://mozillians.org/u/darrin/ Darrin Henein]
* [https://mozillians.org/u/antlam/ Anthony Lam]
* [https://mozillians.org/u/mmaslaney/ Michael Maslaney]
* [https://mozillians.org/u/phlsa/ Philipp Sackl]
* [https://mozillians.org/en-US/u/vt/ Valentin Tsatskin]
* [https://mozillians.org/u/bwinton/ Blake Winton]
|-
| Dedicated Engineering
* Self-organizing and self-managing; team determines how much work they can commit to from the Product Backlog during each Iteration Planning meeting
* Deliver build for every sprint consisting of work from sprint backlog
* Responsible for attending Planning meetings
* Report impediments to the Project Manager
* Keep work item, Feature Story and Epic status up-to-date
|
* [https://mozillians.org/u/gavin/ Gavin Sharp]
* [https://mozillians.org/u/paolo/ Paolo Amadini]
* [https://mozillians.org/u/mak/ Marco Bonardo]
* [https://mozillians.org/u/Enn/ Neil Deakin]
* [https://mozillians.org/u/felipe/ Felipe Gomes]
* [https://mozillians.org/u/mhammond/ Mark Hammond]
* [https://mozillians.org/u/smacleod/ Steven MacLeod]
* [https://mozillians.org/u/8879c6d17a/ Asaf Romano]
* [https://mozillians.org/u/ttaubert/ Tim Taubert]
* [https://mozillians.org/u/adw/ Drew Willcoxon]
* [https://mozillians.org/u/dolske/ Justin Dolske]
* [https://mozillians.org/u/mconley/ Mike Conley]
* [https://mozillians.org/u/dao/ Dao Gottwald]
* [https://mozillians.org/u/Gijs/ Gijs Kruitbosch]
* [https://mozillians.org/u/Unfocused/ Blair McBride]
* [https://mozillians.org/u/MattN/ Matthew Noorenberghe]
* [https://mozillians.org/u/jaws/ Jared Wein]
* [https://mozillians.org/u/mdeboer/ Michael de Boer]
|-
| QA
* Create and execute test plans
* Verify acceptance criteria
* Responsible for attending Planning meetings
* Report impediments to the Project Manager
|
* [https://mozillians.org/u/mschifer/ MarcSchifer]
* [https://mozillians.org/u/juanb/ Juan Becerra]
* [https://mozillians.org/u/ashughes/ Anthony Hughes]
* [https://mozillians.org/u/ae5685404e/ Tracy Walker]
|-
| Release Management ||
* [https://mozillians.org/u/lsblakk/ Lukas Blakk]
* [https://mozillians.org/u/sylvestre/ Sylvestre Ledru]
|-
| Marketing ||
* [https://mozillians.org/u/lforrest/ Laura Forrest]
|-
|}
<p> </p>
 
==Communication==
<p> </p>
<p> </p>
===General===
These are tagged as [good first bug] in a bug's Whiteboard field.  The challenge of a "good first bug" is only peripherally about the bug itself. The focus, for a new contributor, should be on getting your development environment set up and learning how to navigate Mozilla's contribution process. There are some [https://developer.mozilla.org/en-US/docs/Introduction excellent documents on MDN] to help you get started, and the #introduction IRC channel exists just to help people getting started as contributors.
<p> </p>
<p> </p>
* '''Team Mailing list:''' [[Firefox/firefox-dev]]
* '''Desktop Backlog Good First Bugs - [http://tinyurl.com/p2zjteb View in Bugzilla]
* '''Team IRC Channel:''' [irc://irc.mozilla.org/fx-team #fx-team]
<p> </p>
<p> </p>


===Backlog Refinement Meeting===
===Good Next Bugs===
<p> </p>
* '''Time:'''  Thursdays - '''12:00 - 1:00''' (PST), '''3:00 - 4:00''' (EST)
* '''Duration:'''  1 hour
* '''Vidyo Room:'''  "Firefox"
* '''Iteration Backlog:''' [https://docs.google.com/spreadsheet/ccc?key=0Av7GIk7p6MZfdDN2ZGkyZFRpSDVacHRfVTQ2bnNNdWc&usp=sharing View Priority List]
<p> </p>
<p> </p>
 
Marked as [good next bug] on the whiteboard, these are a the next level up, where the challenge of the bug is actually fixing the bug. There are four parts to a well-described Good Next Bug: a willing mentor, a clear initial description of the problem, clear expectations on the part of the both the mentor and contributor, and a cooperative working relationship as the bug is resolved.
===Sprint Planning/Review and Status Meeting===
<p> </p>
<p> </p>
* '''Time:'''  Tuesdays - '''8:00 AM - 10:00 AM''' Pacific, '''11:00 AM - 1:00 PM''' Eastern
* '''Desktop Backlog Good Next Bugs - [http://tinyurl.com/lezwoct View in Bugzilla]
** First Tuesday focussed on Sprint Planning/Review.
** Second Tuesday focussed on Team Update.
** '''Note:''' The day/time for this meeting is for the initial process launch.  When the entire team has been integrated there will be three meeting time slots (European/Eastern/Pacific) on Tuesday.
* '''Duration:'''  2 hour(s)
* '''Vidyo Room:'''  "Firefox"
* '''Iteration Backlog:''' [https://docs.google.com/spreadsheets/d/10sr6YhDNmO4oimlNtxDZ5fe6IaQKmZ7gqT-ZWqAygrI/edit View Priority List]
* '''Process Launch Team Members:'''
** Chad Weiner - Product
** Bryan Clark - Product
** Javaun Moradi - Product
** Tracy Walker - QA
** Juan Becerra - QA
** Anthony Hughes - QA
** Jenn Chaulk - Project
** Lawrence Mandel - Project
** Marco Mucci - Project
** Madhava Enros - UX
** Sevaan Franks - UX
** Jennifer Morrow - UX
** Gavin Sharp - ENG
** Steven MacLeod - ENG
** Felipe Gomes - ENG
** Drew Willcoxon - ENG
** Paolo Amadini - ENG
** Marco Bonardo - ENG
** Asaf Romano - ENG
** Neil Deakin - ENG
** Florian Queze - ENG
<p> </p>
<p> </p>


===Iteration Performance Reports===
===Diamond Bugs===
<p> </p>
<p> </p>
'''Note:'''  Next update on Tuesday April 29 following the conclusion of Iteration 31.3
Marked as [diamond] on the whiteboard, this label doesn't speak to a bug's difficulty, but rather speaks to its importance. Diamond bugs are bugs that have been brought up as important bugs in engineering's various priority-triage processes but aren't assigned to an engineer by the end of the triage process.
<p> </p>
<p> </p>
* Iteration 31.2 - Tue 04/01/14 - Mon 04/14/14:  [https://wiki.mozilla.org/Firefox/IterativeDevelopment/IT-31.2PerformanceReport View Current Report]
* '''Desktop Backlog Diamond Bugs - [http://tinyurl.com/llf7hfm View in Bugzilla]
* [https://wiki.mozilla.org/Firefox/IterativeDevelopment/PerformanceReportArchive View Report Archive]
<p> </p>
<p> </p>

Latest revision as of 02:42, 29 April 2015

Firefox Desktop Iterative Development

Objectives

The Iterative Development Model implemented for Firefox Desktop aims to accomplish six key objectives:

  • Transparent - Who is working on what, when, and why.
  • Predictable and Repeatable - Know what to expect from the process.
  • Inclusive - Include all key participants (Eng, UX, QA, Security, Product) and stakeholders in the process.
  • Clear Direction and Decision Making - Know what we should do and who makes the call.
  • Clear and Stable Priorities - Be clear on what is most important for each iterative cycle.
  • Innovative - Provide flexibility to engage in experimental and original projects.

Iteration 40.2 Performance

Note: Next update on Tuesday May 12 following the conclusion of Iteration 40.3

Iteration Production Goal

  • Team surpassed the IT 40.2 production goal of 182 points and completed 211 points.
  • The production goal for IT 40.3 is 114 points.
    • Note: Iteration production goal has been lowered as 7 individuals have moved to the FX Search Team.

40-2-ITGOAL.png

Release Production Goal

  • Given the 211 points completed in IT 40.2 the team is currently ahead by 19 points in achieving the Release 40 production goal of 478 points.
    • Note: Release production goal has been lowered as 7 individuals have moved to the FX Search Team.

40-2-RGOAL.png

Velocity Range

  • Team achieved a median velocity of 159 points in IT 40.2 with a 90% likelihood the actual points completed in IT 40.3 will fall between 54 and 180.
    • Note: Forecast velocity range has been lowered as 7 individuals have moved to the FX Search Team.

40-2-RANGE.png

Completion Rate

  • 116% of IT 40.2 point target completed which exceeded the 'success' range.

40-2-ICOMPLETION.png

  • 80% of Release 40 point target completed to date.

40-2-RCOMPLETION.png

Completed Work

Product Backlog

All work related to the ongoing development and maintenance of the Firefox Desktop Product are collected and prioritized in the Product Backlog. The goals of the Product Backlog are to:

  • Enable work to be prioritized so that the team is always working on the most important features.
  • Support continual planning as the product emerges so the plan matches reality.
  • Improve forecasts so that the stakeholders make the best decisions about the direction of the product.

The Product Backlog is maintained by the Senior Management team (Chad, Gavin, Madhava) to ensure new priorities are available for each Sprint Planning meeting.

Product Backlog: View Bugzilla

Iterations

Note: Next update on Tuesday May 12 following the conclusion of Iteration 40.3

The Iteration Backlog is a collection of priority work the team has selected to work on in a two-week iteration.

Current Iteration - 40.3

Next Iteration - 41.1

  • Duration: Tuesday May 12 - Monday May 25

Upcoming Iterations

Release plan when each Firefox version goes to Central, Aurora, Beta, & Release: View Rapid Release Schedule

Firefox 41 Release

  • Iteration 41.2: Tuesday May 26 - Monday June 8
  • Iteration 41.3: Tuesday June 9 - Monday June 29
    • Note: IT 41.3 is a 3-week iteration.

Firefox 42 Release

  • Iteration 42.1: Tuesday June 30 - Monday July 13
  • Iteration 42.2: Tuesday July 14 - Monday July 27
  • Iteration 42.3: Tuesday July 28 - Monday August 10

Communication

General

Sprint Planning Meeting

Meeting Day of week Pacific Time Eastern Time Central European Time Time zone conversions
"Morning" Tuesdays 8:00AM - 9:00AM 11:00AM - 12:00PM 5:00PM - 6:00PM AWMY
"Afternoon" Tuesdays 4:00PM - 5:00PM 7:00PM - 8:00PM 1:00AM - 2:00AM AWMY

Iteration Performance Reports

Note: Next update on Tuesday May 12 following the conclusion of Iteration 40.3

Contribute to Firefox Desktop

Good First Bugs

These are tagged as [good first bug] in a bug's Whiteboard field. The challenge of a "good first bug" is only peripherally about the bug itself. The focus, for a new contributor, should be on getting your development environment set up and learning how to navigate Mozilla's contribution process. There are some excellent documents on MDN to help you get started, and the #introduction IRC channel exists just to help people getting started as contributors.

Good Next Bugs

Marked as [good next bug] on the whiteboard, these are a the next level up, where the challenge of the bug is actually fixing the bug. There are four parts to a well-described Good Next Bug: a willing mentor, a clear initial description of the problem, clear expectations on the part of the both the mentor and contributor, and a cooperative working relationship as the bug is resolved.

Diamond Bugs

Marked as [diamond] on the whiteboard, this label doesn't speak to a bug's difficulty, but rather speaks to its importance. Diamond bugs are bugs that have been brought up as important bugs in engineering's various priority-triage processes but aren't assigned to an engineer by the end of the triage process.