Gaia/SMS/Handling Bugs
From MozillaWiki
<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>