<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif"><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap">TPG is struggling with practices for having lists of sub-tasks within Phabricator tasks.  So far we have used two approaches, neither fully satisfactory, and we are looking for approaches that solve all of the problems with none of the drawbacks.<br><br></span></font></span></div><div class="gmail_default" style="font-family:georgia,serif"><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap">The most common example of this problem is a complex piece of work, e.g. an "Epic" task, which has many subcomponents and which may take months to complete in full.  We generally create a Phabricator task to track this work as a whole, tagged as "Epic".  Then, we have two different approaches to decomposition.<br><br></span></font></span></div><div class="gmail_default" style="font-family:georgia,serif"><b><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap">Approach 1: Pure subtasks<br></span></font></span></b></div><div class="gmail_default" style="font-family:georgia,serif"><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap"><br></span></font></span></div><div class="gmail_default" style="font-family:georgia,serif"><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap">For each divisible piece of work within this Epic, we create a separate Phabricator task as a subtask of the Epic.  The Epic task itself has a brief description.  An example of this is </span></font></span><a href="https://phabricator.wikimedia.org/T137479">T137479: [EPIC] Provide support to people in design-related roles</a>.<br><br></div><div class="gmail_default" style="font-family:georgia,serif">What works well:<br><ul><li>All divisible work is tracked as subtasks, so they can be properly tracked (status is clear, responsibility is clear, history is logged, etc.)</li></ul><p>What works poorly:</p><ul><li>All work must be decomposed into sub-tasks (as opposed to being left in outline form)<br></li><li>The relative order of sub-tasks cannot be modified.<br></li><li>The list of subtasks is presented in the Task Graph, which is not as familiar or legible as an indented bullet list</li><li>Sub-tasks may have multiple parents, which is confusing to users expecting pure trees.  For example:  <br></li></ul></div><div class="gmail_default" style="font-family:georgia,serif"><h1 class="gmail-phui-header-view"><span class="gmail-phui-header-header"><span class="gmail-visual-only gmail-phui-icon-view gmail-phui-font-fa gmail-fa-exclamation-circle gmail-orange gmail-phui-header-icon"></span></span><span></span><img src="cid:ii_itoy1q9k1_157782d4f31ff8a9" width="415" height="121"><br>​<font size="2"><b>Approach 2: Manual subtask tree</b></font><br></h1><p>The work comprising the Epic is documented in the Phabricator Description field as a list or tree of subcomponents, which may be either lines of text or links to Phabricator sub-tasks.  Example: <a href="https://phabricator.wikimedia.org/T122839">T122839: A documented and agreed upon definition of ‘core work’ exists</a>.<br></p><p></p><p>What works well:</p><ul><li>The order of subtasks can be edited</li><li>Small pieces of work can be documented as lines of text instead of complete Phabricator tasks</li><li>The work breakdown is more legible to those expecting a checklist or tree</li><li>Sub-tasks can be documented using the {T######} shortcut, which auto-updates title and status.</li><li>Changes to the Description are well-highlighted in update emails.<br></li></ul><p>What works poorly:</p><ul><li>The subtasks in Phabricator inevitably get out of sync with the list of subtasks in the Description.</li><li>The status of checkboxes in the description inevitably gets out of sync with the status of subtasks</li><li>The history of text-only tasks in the description is not easily accessible in the web interface.<br></li></ul><p>Example:</p><p><img src="cid:ii_itoydn9c2_1577835c8cb3f3af" style="margin-right: 0px;" width="415" height="156"></p><p>Should we commit to Approach 1 or 2, or are there other approaches which provide the benefits of both?<br></p></div><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap"></span></font></span><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap"></span></font></span><div class="gmail_default" style="font-family:georgia,serif"><span><font face="georgia, serif"><span style="vertical-align:baseline;white-space:pre-wrap"><br></span></font></span></div><div><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font color="#888888"><div><b>-- <br>Joel Aufrecht<br></b></div><div>Team Practices Group<b><br></b></div><div>Wikimedia Foundation<br></div></font></div></div></div></div></div></div></div>
</div>