canmove, Confirmed users
868
edits
Jennierose (talk | contribs) No edit summary |
|||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category: Contribute]] [[Category: Coding]] [[Category: Mentoring]] | |||
This page is intended to describe what makes up a a good first bug, a good Mentored Bug, and to clarify expectations around what constitutes a good bug-mentoring relationship. | This page is intended to describe what makes up a a good first bug, a good Mentored Bug, and to clarify expectations around what constitutes a good bug-mentoring relationship. | ||
Line 6: | Line 8: | ||
= Good First Bugs = | = Good First Bugs = | ||
These are tagged as [good first bug] in a bug's Whiteboard field (examples of [https://bugzilla.mozilla.org/buglist.cgi?list_id=10298598&resolution=---&resolution=DUPLICATE&status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=%5Bgood%20first%20bug%5D good first bugs]). | |||
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. | 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. | ||
Line 11: | Line 15: | ||
A good, ahem, good first bug includes an extremely narrow scope, clear hardware and platform requirements, and prompt reviewer followup. | A good, ahem, good first bug includes an extremely narrow scope, clear hardware and platform requirements, and prompt reviewer followup. | ||
Unfortunately | Unfortunately abandoned attempts at first bugs are a common occurrence, and they tie up opportunities for other contributors. Somebody who'd like to be assigned a good-first-bug should have their development environment spun up and a first attempt at a patch submitted for review before they can be properly assigned the bug. | ||
Advice for new developers: [[Firefox Developer Onboarding]]. | |||
=== Narrowly Scoped === | === Narrowly Scoped === | ||
An ideal first bug is very narrow in scope, possibly as little as one line | An ideal first bug is very narrow in scope, possibly as little as one line, and has the following qualities: | ||
* The problem statement and successful outcome are unambiguous. | * The problem statement and successful outcome are unambiguous. | ||
* The bug should link to the code to be modified using a DXR link. | * The bug should link to the code to be modified using a DXR link. | ||
* any relevant automated tests should also be identified, as well as instructions for adding any new tests | * any relevant automated tests should also be identified, as well as instructions for adding any new tests, and | ||
* The bug is not time-critical, blocking on or being blocked by anything else | * The bug is not time-critical, blocking on or being blocked by anything else | ||
Line 32: | Line 38: | ||
= Good Next Bugs = | = 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. | |||
=== Clear Requirements === | === Clear Requirements === | ||
Line 44: | Line 50: | ||
= Diamond Bugs = | = Diamond Bugs = | ||
Marked as [diamond] on the whiteboard, this label doesn't speak to a bug's difficulty, but | 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 - for example, front-end engineering's Firefox Priority Backlog meetings - but aren't assigned to an engineer by the end of the triage process. | ||
A diamond bug should always have a mentor associated with it. These bugs are an organizational priority, and their successful completion is important; contributors taking on diamond bugs should do their best to communicate their progress frequently in the bug, and anyone mentoring a diamond bug should do their best to turn around a contributor's questions or feedback promptly. | A diamond bug should always have a mentor associated with it. These bugs are an organizational priority, and their successful completion is important; contributors taking on diamond bugs should do their best to communicate their progress frequently in the bug, and anyone mentoring a diamond bug should do their best to turn around a contributor's questions or feedback promptly. | ||
Line 50: | Line 56: | ||
= Experience Required = | = Experience Required = | ||
These bugs are very hard. | These bugs are going to be very hard to fix. | ||
Bugs flagged as [experience required] are generally bugs that live on the ragged | Bugs flagged as [experience required] are generally corner-case bugs that live on the ragged edges between two different pieces of technology - JS and C++ on a specific architecture, or a philosophical disagreement between a particular compiler and a particular set of registers on a particular CPU - that require a deep and fine-grained understanding of the technologies involved. We expect these bugs to take a great deal of time, patience and expertise to address. | ||
These bugs must have a mentor associated with them, and while they are not typically going to be high-visibility bugs their completion is of very high value to Mozilla, and we're very interested in having a long-term relationship with contributors who can complete them. | These bugs must have a mentor associated with them, and while they are not typically going to be high-visibility bugs their completion is of very high value to Mozilla, and we're very interested in having a long-term relationship with contributors who can complete them. |