Gaia/SMS/Handling Bugs: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
digraph handling_bugs { | digraph handling_bugs { | ||
bug_reported -> another_component | bug_reported -> another_component | ||
bug_reported_note -> bug_reported [dir=none] | |||
bug_reported_note -> bug_reported [dir=none style=dotted] | |||
{ rank=same; bug_reported_note bug_reported } | { rank=same; bug_reported_note bug_reported } | ||
another_component -> change_component [label="YES"] | another_component -> change_component [label="YES"] | ||
another_component -> new_feature [label="NO"] | another_component -> new_feature [label="NO"] | ||
another_component_note -> another_component [dir=none] | another_component_note -> another_component [dir=none style=dotted] | ||
{ rank=same; another_component_note another_component change_component } | { rank=same; another_component_note another_component change_component } | ||
Line 16: | Line 17: | ||
new_feature -> duplicate [label="NO"] | new_feature -> duplicate [label="NO"] | ||
duplicate_note -> duplicate [dir=none] | duplicate_note -> duplicate [dir=none style=dotted] | ||
duplicate -> close_duplicate [label="YES"] | duplicate -> close_duplicate [label="YES"] | ||
{ rank=same; duplicate_note duplicate close_duplicate } | { rank=same; duplicate_note duplicate close_duplicate } | ||
Line 22: | Line 23: | ||
duplicate -> expected [label="NO"] | duplicate -> expected [label="NO"] | ||
expected_note -> expected [dir=none] | expected_note -> expected [dir=none style=dotted] | ||
expected -> close_invalid [label="YES"] | expected -> close_invalid [label="YES"] | ||
{ rank=same; expected_note expected close_invalid } | { rank=same; expected_note expected close_invalid } | ||
expected -> add_qawanted [label="NO"] | expected -> add_qawanted [label="NO"] | ||
qawanted_note -> add_qawanted [dir="none"] | qawanted_note -> add_qawanted [dir="none" style=dotted] | ||
{ rank=same; qawanted_note add_qawanted } | { rank=same; qawanted_note add_qawanted } | ||
Line 33: | Line 34: | ||
reproducible -> close_worksforme [label="NO"] | reproducible -> close_worksforme [label="NO"] | ||
close_worksforme -> close_worksforme_note [dir=none] | close_worksforme -> close_worksforme_note [dir=none style=dotted] | ||
{ rank=same; reproducible close_worksforme close_worksforme_note } | { rank=same; reproducible close_worksforme close_worksforme_note } | ||
Line 49: | Line 50: | ||
bug_new_feature -> bug_worth [label="NO"] | bug_new_feature -> bug_worth [label="NO"] | ||
is_blocker -> bug_worth [label="NO"] | is_blocker -> bug_worth [label="NO" weight=100] | ||
bug_worth -> ask_needinfo_worth [label="NO"] | bug_worth -> ask_needinfo_worth [label="NO"] | ||
bug_worth -> small_bugfix [label="YES"] | bug_worth -> small_bugfix [label="YES" weight=100] | ||
ask_needinfo_worth -> close_wontfix [label="agrees"] | ask_needinfo_worth -> close_wontfix [label="agrees"] | ||
Line 61: | Line 62: | ||
{ set_most_wanted set_papercuts } -> bug_not_forgotten -> actionable | { set_most_wanted set_papercuts } -> bug_not_forgotten -> actionable | ||
actionable -> urgent [label="YES"] | actionable -> urgent [label="YES"] | ||
actionable -> needinfo_actionable -> actionable | actionable -> needinfo_actionable [label="NO"] | ||
needinfo_actionable -> needinfo_actionable_note [dir="none"] | needinfo_actionable -> actionable | ||
{ rank=same; needinfo_actionable needinfo_actionable_note } | needinfo_actionable -> needinfo_actionable_note [dir="none" style=dotted] | ||
{ rank=same; actionable needinfo_actionable needinfo_actionable_note } | |||
urgent -> really_urgent [label="YES"] | urgent -> really_urgent [label="YES"] | ||
Line 72: | Line 74: | ||
really_urgent -> find_owner [label="YES"] | really_urgent -> find_owner [label="YES"] | ||
really_urgent -> wait_planning [label="NO"] | really_urgent -> wait_planning [label="NO"] | ||
bug_reported [label="A bug is reported" shape=box] | bug_reported [label="A bug is reported" shape=box] | ||
Line 78: | Line 79: | ||
another_component [label="Does the bug belong\nto another component?" shape=diamond] | another_component [label="Does the bug belong\nto another component?" shape=diamond] | ||
another_component_note [label="Very often, a bug will happen\nin another application, or in\nGecko. | another_component_note [label="Very often, a bug will happen\nin another application, or in\nGecko.\nSometimes we don't know\nthis right away and need to\ninvestigate or wait for a\nregression window." shape=note color=pink] | ||
change_component [label="Change component to\nappropriate component" color="red"] | change_component [label="Change component to\nappropriate component" color="red"] | ||
Line 89: | Line 90: | ||
close_duplicate [label="Close DUPLICATE" color="red"] | close_duplicate [label="Close DUPLICATE" color="red"] | ||
expected [label="Is it an | expected [label="Is it an\nexpected behavior?" shape=diamond] | ||
expected_note [label="Always ask the\nUX designer to answer the\nquestion for good." shape=note color=pink] | expected_note [label="Always ask the\nUX designer to answer the\nquestion for good." shape=note color=pink] | ||
close_invalid [label="Close INVALID" color=red] | close_invalid [label="Close INVALID" color=red] | ||
add_qawanted [label=" | add_qawanted [label="add qawanted flag"] | ||
qawanted_note [label="With qawanted, a team of\nQA engineers will test the\nbug on various branches\nand report if it's happening." shape=note color=pink] | qawanted_note [label="With qawanted, a team of\nQA engineers will test the\nbug on various branches\nand report if it's happening." shape=note color=pink] | ||
reproducible [label="Is it reproducible?" shape=diamond] | reproducible [label="Is it reproducible?" shape=diamond] | ||
Line 105: | Line 106: | ||
nominate_blocker [label="Nominate as a blocker for\nthe latest version"] | nominate_blocker [label="Nominate as a blocker for\nthe latest version"] | ||
set_regression [label=" | set_regression [label="Set regression and\nregressionwinfo-wanted"] | ||
is_blocker [label="Is bug accepted | is_blocker [label="Is bug accepted\nas a blocker?" shape=diamond] | ||
bug_not_forgotten [label="Bug will not be forgotten" shape=box color=red] | bug_not_forgotten [label="Bug will not be forgotten" shape=box color=red] | ||
Line 116: | Line 117: | ||
close_wontfix [label="Close WONTFIX" color=red] | close_wontfix [label="Close WONTFIX" color=red] | ||
actionable [label="Is the bug | actionable [label="Is the bug\nactionable?" shape=diamond] | ||
needinfo_actionable [label="Ask needinfo to\nthe right people until the\nbug is actionable"] | needinfo_actionable [label="Ask needinfo to\nthe right people until the\nbug is actionable"] | ||
needinfo_actionable_note [label="The 'right people' can be\nUX Designers, Visual\nDesigners, Gecko engineers,\nthe bug reporter, ..." shape=note color=pink] | needinfo_actionable_note [label="The 'right people' can be\nUX Designers, Visual\nDesigners, Gecko engineers,\nthe bug reporter, ..." shape=note color=pink] | ||
Line 128: | Line 129: | ||
find_owner [label="Find a owner and take it now" color=red] | find_owner [label="Find a owner and take it now" color=red] | ||
} | } | ||
</graphviz> | </graphviz> |
Latest revision as of 13:37, 23 March 2015
<graphviz> digraph handling_bugs {
bug_reported -> another_component
bug_reported_note -> bug_reported [dir=none style=dotted] { rank=same; bug_reported_note bug_reported }
another_component -> change_component [label="YES"] another_component -> new_feature [label="NO"] another_component_note -> another_component [dir=none style=dotted] { rank=same; another_component_note another_component change_component }
new_feature -> ask_needinfo_ux [label="YES"] ask_needinfo_ux -> put_backlog_wontfix { rank=same; new_feature put_backlog_wontfix ask_needinfo_ux }
new_feature -> duplicate [label="NO"]
duplicate_note -> duplicate [dir=none style=dotted] duplicate -> close_duplicate [label="YES"] { rank=same; duplicate_note duplicate close_duplicate }
duplicate -> expected [label="NO"]
expected_note -> expected [dir=none style=dotted] expected -> close_invalid [label="YES"] { rank=same; expected_note expected close_invalid } expected -> add_qawanted [label="NO"] qawanted_note -> add_qawanted [dir="none" style=dotted] { rank=same; qawanted_note add_qawanted }
add_qawanted -> reproducible
reproducible -> close_worksforme [label="NO"] close_worksforme -> close_worksforme_note [dir=none style=dotted] { rank=same; reproducible close_worksforme close_worksforme_note }
reproducible -> reproducible_older [label="YES"] reproducible_older -> bug_new_feature [label="NO"] bug_new_feature -> nominate_blocker [label="YES"]
nominate_blocker -> is_blocker
reproducible_older -> nominate_blocker_older [label="YES"]
nominate_blocker_older -> set_regression -> is_blocker
is_blocker -> bug_not_forgotten [label="YES"]
bug_new_feature -> bug_worth [label="NO"] is_blocker -> bug_worth [label="NO" weight=100] bug_worth -> ask_needinfo_worth [label="NO"] bug_worth -> small_bugfix [label="YES" weight=100]
ask_needinfo_worth -> close_wontfix [label="agrees"] ask_needinfo_worth -> small_bugfix [label="doesn't agree"]
small_bugfix -> set_most_wanted [label="NO"] small_bugfix -> set_papercuts [label="YES"]
{ set_most_wanted set_papercuts } -> bug_not_forgotten -> actionable actionable -> urgent [label="YES"] actionable -> needinfo_actionable [label="NO"] needinfo_actionable -> actionable needinfo_actionable -> needinfo_actionable_note [dir="none" style=dotted] { rank=same; actionable needinfo_actionable needinfo_actionable_note }
urgent -> really_urgent [label="YES"] urgent -> easy_bug [label="NO"] easy_bug -> mentored_bug [label="YES"] easy_bug -> wait_planning [label="NO"]
really_urgent -> find_owner [label="YES"] really_urgent -> wait_planning [label="NO"]
bug_reported [label="A bug is reported" shape=box] bug_reported_note [label="You may need to ask more\ninformation from the reporter\nright now: Firefox OS version,\ndevice, precise STR,\nscreenshot or video, trying\nother actions..." shape=note color=pink]
another_component [label="Does the bug belong\nto another component?" shape=diamond] another_component_note [label="Very often, a bug will happen\nin another application, or in\nGecko.\nSometimes we don't know\nthis right away and need to\ninvestigate or wait for a\nregression window." shape=note color=pink] change_component [label="Change component to\nappropriate component" color="red"]
new_feature [label="Is it a new feature?" shape=diamond] ask_needinfo_ux [label="Ask needinfo to UX\nand product owner"] put_backlog_wontfix [label="Will put in backlog\nor close WONTFIX" color="red"]
duplicate [label="Is it a duplicate?" shape=diamond] duplicate_note [label="The answer to this question\nmost often comes from our\nmemory. that's why it's\nimportant to follow the\ncomponent.\npay attention to the branches\na patch has landed to." shape=note color=pink] close_duplicate [label="Close DUPLICATE" color="red"]
expected [label="Is it an\nexpected behavior?" shape=diamond] expected_note [label="Always ask the\nUX designer to answer the\nquestion for good." shape=note color=pink] close_invalid [label="Close INVALID" color=red]
add_qawanted [label="add qawanted flag"] qawanted_note [label="With qawanted, a team of\nQA engineers will test the\nbug on various branches\nand report if it's happening." shape=note color=pink] reproducible [label="Is it reproducible?" shape=diamond] close_worksforme [label="Close WORKSFORME" color=red] close_worksforme_note [label="You can investigate a little\nmore by yourself if you think\nthe bug is valid despite QA\ndidn't reproduce." color=pink shape=note]
reproducible_older [label="Is it reproducible\nin an older branch?" shape=diamond] bug_new_feature [label="Is it a bug in a\nnew feature ?" shape=diamond]
nominate_blocker_older [label="Nominate as a blocker\nfor the older version"] nominate_blocker [label="Nominate as a blocker for\nthe latest version"]
set_regression [label="Set regression and\nregressionwinfo-wanted"] is_blocker [label="Is bug accepted\nas a blocker?" shape=diamond] bug_not_forgotten [label="Bug will not be forgotten" shape=box color=red]
bug_worth [label="Do you think\nthe bug is\nworth being\nfixed?" shape=diamond] ask_needinfo_worth [label="Ask Needinfo to\nUX Designer" shape=diamond] small_bugfix [label="Do you think the\nbug fix\nwould be small" shape=diamond] set_most_wanted [label="Set the whiteboard\n[sms-most-wanted]"] set_papercuts [label="Set the whiteboard\n[sms-papercuts]"] close_wontfix [label="Close WONTFIX" color=red]
actionable [label="Is the bug\nactionable?" shape=diamond] needinfo_actionable [label="Ask needinfo to\nthe right people until the\nbug is actionable"] needinfo_actionable_note [label="The 'right people' can be\nUX Designers, Visual\nDesigners, Gecko engineers,\nthe bug reporter, ..." shape=note color=pink]
urgent [label="Is it an urgent bug?" shape=diamond] really_urgent [label="Is it a really urgent bug\n(like: it's a blocker and\nwe're late in the cycle)?" shape=diamond]
easy_bug [label="Is it a\nreasonably\neasy bug ?" shape=diamond] mentored_bug [label="Mark the bug\nas a mentored bug.\nWrite appropriate\nindications for a contributor\nto start fixing the bug." color=red] wait_planning [label="Wait until the bug is\npicked in a sprint planning" color=red] find_owner [label="Find a owner and take it now" color=red]
}
</graphviz>