Gaia/SMS/Handling Bugs: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<graphviz> | <graphviz> | ||
digraph handling_bugs { | digraph handling_bugs { | ||
bug_reported -> another_component -> new_feature -> duplicate -> expected -> add_qawanted -> reproducible -> reproducible_older -> nominate_blocker_older -> set_regression -> is_blocker -> bug_not_forgotten -> actionable -> urgent -> really_urgent -> find_owner | 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 [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 [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] | 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 [label="Is it a duplicate?" shape=diamond] | ||
expected [label="Is it an | 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] | ||
add_qawanted [label=" | 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] | reproducible [label="Is it reproducible?" shape=diamond] | ||
reproducible_older [label="Is it reproducible | close_worksforme [label="Close WORKSFORME" color=red] | ||
nominate_blocker_older [label="Nominate as a blocker | 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] | ||
set_regression [label=" | |||
is_blocker [label="Is bug accepted | 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_not_forgotten [label="Bug will not be forgotten" shape=box color=red] | ||
actionable [label="Is the bug | |||
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] | 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] | really_urgent [label="Is it a really urgent bug\n(like: it's a blocker and\nwe're late in the cycle)?" shape=diamond] | ||
find_owner [label=" | |||
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> | </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>