[teampractices] How to best track the work within Phabricator Epic tasks

Max Binder mbinder at wikimedia.org
Fri Oct 21 00:42:29 UTC 2016


>
> For bigger 'epic' tasks, it might be better to collect them together under
> a milestone in the parent project.


I agree with this. I think for sagas, you can have a whole dedicated
project, and for epics, you can have Milestones. If the Milestones are a
problem (they don't allow relative prioritization of tasks on the same
board, they create #toomanycolumns, etc) then you can create a dedicated
Milestone board, and Herald tag everything on that board with the parent
project.

This approach doesn't preclude Epics. Indeed, you'll find yourself with
tasks that you didn't realize were as big as they turned out to be, or that
get scope creep. That's fine. If that's the case, though, ruthless grooming
into dedicated projects and Milestones seems appropriate.

Regardless, it seems like all of these approaches benefit from having
someone who pays attention to the growing task list and constantly sorts
and prioritizes.

On Wed, Oct 12, 2016 at 12:47 AM, Mukunda Modell <mmodell at wikimedia.org>
wrote:

> For tasks with many tiny subtasks, I choose to outline them in the
> description and avoid creating separate subtasks.
>
> For bigger 'epic' tasks, it might be better to collect them together under
> a milestone in the parent project.
>
> For tasks with several interdependent sub-tasks I think the phabricator
> task dependency tree works pretty well for understanding the order and
> status of tasks. Sure the presentation could use a lot of improvement but
> it doesn't seem that terrible to me (especially after recent updates to fix
> horizontal scrolling issues)
>
> The biggest failure in the subtask graph, IMO, is when you have more than
> say 10 direct subtasks and the thing starts to get really wide.
>
> On Fri, Oct 7, 2016 at 3:59 PM, Kevin Smith <ksmith at wikimedia.org> wrote:
>
>> If my years of programming taught me anything, it is the evil of
>> duplication. There needs to be one authoritative source of information. Any
>> copy is at high risk of being out-of-date or out-of-synch, either of which
>> make it misleading. For me, misleading information is (much) worse than
>> none at all.
>>
>> In approach 1:
>>
>>    - Sequencing can be handled by creating sub/parent task dependency
>>    chains among the children. It's ugly, and the new phab terminology really
>>    sucks for this use case, but it is possible, if it's important. Or we could
>>    adopt a convention of putting sequence numbers at the start of each subtask
>>    title, in cases where sequencing matters and is not obvious.
>>    - I agree that the graphic presentation is horrible, although the
>>    more I stare at the little spaghetti mazes, the more I start to believe
>>    that I might be starting to understand them.
>>
>> I think this issue intersects with:
>>
>> Should we "explode" tasks pro-actively/early? I am increasingly thinking
>> the answer is "no".
>>
>> Should we use phabricator as our primary tool for learning the status and
>> ​next steps of an epic? I'm also leaning toward "no", because the epic
>> owner/shepherd should serve as a reasonable source of that information.
>>
>>
>>
>>
>> Kevin Smith
>> Agile Coach, Wikimedia Foundation
>>
>>
>> On Thu, Sep 29, 2016 at 11:13 PM, Joel Aufrecht <jaufrecht at wikimedia.org>
>> wrote:
>>
>>> 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.
>>>
>>> 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.
>>>
>>>
>>> *Approach 1: Pure subtasks*
>>>
>>> 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 T137479: [EPIC] Provide support to
>>> people in design-related roles
>>> <https://phabricator.wikimedia.org/T137479>.
>>>
>>> What works well:
>>>
>>>    - All divisible work is tracked as subtasks, so they can be properly
>>>    tracked (status is clear, responsibility is clear, history is logged, etc.)
>>>
>>> What works poorly:
>>>
>>>    - All work must be decomposed into sub-tasks (as opposed to being
>>>    left in outline form)
>>>    - The relative order of sub-tasks cannot be modified.
>>>    - The list of subtasks is presented in the Task Graph, which is not
>>>    as familiar or legible as an indented bullet list
>>>    - Sub-tasks may have multiple parents, which is confusing to users
>>>    expecting pure trees.  For example:
>>>
>>>
>>> ​*Approach 2: Manual subtask tree*
>>>
>>> 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: T122839: A
>>> documented and agreed upon definition of ‘core work’ exists
>>> <https://phabricator.wikimedia.org/T122839>.
>>>
>>> What works well:
>>>
>>>    - The order of subtasks can be edited
>>>    - Small pieces of work can be documented as lines of text instead of
>>>    complete Phabricator tasks
>>>    - The work breakdown is more legible to those expecting a checklist
>>>    or tree
>>>    - Sub-tasks can be documented using the {T######} shortcut, which
>>>    auto-updates title and status.
>>>    - Changes to the Description are well-highlighted in update emails.
>>>
>>> What works poorly:
>>>
>>>    - The subtasks in Phabricator inevitably get out of sync with the
>>>    list of subtasks in the Description.
>>>    - The status of checkboxes in the description inevitably gets out of
>>>    sync with the status of subtasks
>>>    - The history of text-only tasks in the description is not easily
>>>    accessible in the web interface.
>>>
>>> Example:
>>>
>>> Should we commit to Approach 1 or 2, or are there other approaches which
>>> provide the benefits of both?
>>>
>>>
>>>
>>> *-- Joel Aufrecht*
>>> Team Practices Group
>>> Wikimedia Foundation
>>>
>>> _______________________________________________
>>> teampractices mailing list
>>> teampractices at lists.wikimedia.org
>>> https://lists.wikimedia.org/mailman/listinfo/teampractices
>>>
>>>
>>
>> _______________________________________________
>> teampractices mailing list
>> teampractices at lists.wikimedia.org
>> https://lists.wikimedia.org/mailman/listinfo/teampractices
>>
>>
>
> _______________________________________________
> teampractices mailing list
> teampractices at lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/teampractices
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.wikimedia.org/pipermail/teampractices/attachments/20161020/f9b4ba8e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: confusing_tree.png
Type: image/png
Size: 40574 bytes
Desc: not available
URL: <https://lists.wikimedia.org/pipermail/teampractices/attachments/20161020/f9b4ba8e/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: breakdown_example.png
Type: image/png
Size: 13982 bytes
Desc: not available
URL: <https://lists.wikimedia.org/pipermail/teampractices/attachments/20161020/f9b4ba8e/attachment-0003.png>


More information about the teampractices mailing list