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

2017-01-17 Thread Joel Aufrecht
Trying image attachment again.

I didn't start out to be a naysayer though. I am really replying to to
>> share some team practices with the group based on experience with the
>> #Scap3 project.
>>
>
> https://phabricator.wikimedia.org/project/board/1449/ is the parent
> project. It could be a sub-project under our team project but it's
> currently a top-level project. The top level workboard is mostly for
> backlog and high-level categorization of the tasks. We have created
> milestones that approximately correspond to quarterly goals. When something
> moves from backlog it can go into a future milestone, the current milestone
> or into the "debt" column for a future tech debt sprint. Further
> prioritization and progress tracking happens within each milestones'
> workboard:
>
> https://phabricator.wikimedia.org/project/subprojects/1449/
>
> We still end up with epic tasks and the phabricator task graph helps with
> those but I think milestones are nice for this sort of thing. Milestones
> could represent any amount of work, not just quarterly goals, however, the
> key advantage in keeping them small is that you can easily see everything
> on one screen. So I would recommend scoping your milestones so that they
> are limited to whatever you feel is a manageable set of tasks that doesn't
> become overwhelming to look at.
>

There may be two separate issues worth considering here: How we use epics
or other tools to groups bundles of tasks "tactically", at the range of
about 3 to 15 tasks, for daily management, and how we group tasks for
longer-term and bigger planning.  Once we get beyond one screen-ful of
tasks, we need aggregate reporting to effectively track them.

So, Milestones are good for looking at a countable number of tasks (~7 or
less) as a group.  For managing larger quantities of tasks, aggregate
reports are essential.  For example:


​
___
teampractices mailing list
teampractices@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/teampractices


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

2017-01-11 Thread Andre Klapper
On Wed, 2017-01-11 at 10:40 -0800, Joel Aufrecht wrote:
> [image: Inline image 1]

Seems like the image supposed to be displayed here did not make it.

andre
-- 
Andre Klapper | Wikimedia Bugwrangler
http://blogs.gnome.org/aklapper/

___
teampractices mailing list
teampractices@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/teampractices


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

2017-01-11 Thread Joel Aufrecht
>
> I didn't start out to be a naysayer though. I am really replying to to
> share some team practices with the group based on experience with the
> #Scap3 project.
>
> https://phabricator.wikimedia.org/project/board/1449/ is the parent
> project. It could be a sub-project under our team project but it's
> currently a top-level project. The top level workboard is mostly for
> backlog and high-level categorization of the tasks. We have created
> milestones that approximately correspond to quarterly goals. When something
> moves from backlog it can go into a future milestone, the current milestone
> or into the "debt" column for a future tech debt sprint. Further
> prioritization and progress tracking happens within each milestones'
> workboard:
>
> https://phabricator.wikimedia.org/project/subprojects/1449/
>
> We still end up with epic tasks and the phabricator task graph helps with
> those but I think milestones are nice for this sort of thing. Milestones
> could represent any amount of work, not just quarterly goals, however, the
> key advantage in keeping them small is that you can easily see everything
> on one screen. So I would recommend scoping your milestones so that they
> are limited to whatever you feel is a manageable set of tasks that doesn't
> become overwhelming to look at.
>

There may be two separate issues worth considering here: How we use epics
or other tools to groups bundles of tasks "tactically", at the range of
about 3 to 15 tasks, for daily management, and how we group tasks for
longer-term and bigger planning.  Once we get beyond one screen-ful of
tasks, we need aggregate reporting to effectively track them.

[image: Inline image 1]
​
___
teampractices mailing list
teampractices@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/teampractices


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

2017-01-06 Thread Max Binder
Thanks, Mukunda! Good stuff. :)

I try to very gently discourage using herald to tag everything with a
> parent project. It hasn't become a problem yet but ultimately herald rules
> do not scale.


Thanks for the reminder. I definitely guilty of thinking about this stuff
more theoretically sometimes, and it's easy to say "Herald will fix it"
without acknowledging the practical aspects.

When something moves from backlog it can go into a future milestone, the
> current milestone or into the "debt" column for a future tech debt sprint.


I really dig the idea of collecting tasks under a Tech Debt Milestone and
then tackling it when it reaches a certain size. It's sort of like filling
up a bucket with water from a leak, and then emptying it when it reaches
your established limit. Works with existing mountains of debt, too, but I
think it just requires more discipline.

So I would recommend scoping your milestones so that they are limited to
> whatever you feel is a manageable set of tasks that doesn't become
> overwhelming to look at.


An analogy for many things in our line of work. :-D



On Thu, Jan 5, 2017 at 5:27 PM, Mukunda Modell 
wrote:

>
>
> On Thu, Oct 20, 2016 at 7:42 PM, Max Binder  wrote:
>
>> 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.
>>
>>
> I try to very gently discourage using herald to tag everything with a
> parent project. It hasn't become a problem yet but ultimately herald rules
> do not scale. The herald rules themselves are tedious to create and
> maintain and they are slow for phabricator to process. If we get too many
> herald rules then phabricator will be slow and fixing it will be tedious.
> The overhead is in the range of 10ms to 100ms per herald rule.
>
> I didn't start out to be a naysayer though. I am really replying to to
> share some team practices with the group based on experience with the
> #Scap3 project.
>
> https://phabricator.wikimedia.org/project/board/1449/ is the parent
> project. It could be a sub-project under our team project but it's
> currently a top-level project. The top level workboard is mostly for
> backlog and high-level categorization of the tasks. We have created
> milestones that approximately correspond to quarterly goals. When something
> moves from backlog it can go into a future milestone, the current milestone
> or into the "debt" column for a future tech debt sprint. Further
> prioritization and progress tracking happens within each milestones'
> workboard:
>
> https://phabricator.wikimedia.org/project/subprojects/1449/
>
> We still end up with epic tasks and the phabricator task graph helps with
> those but I think milestones are nice for this sort of thing. Milestones
> could represent any amount of work, not just quarterly goals, however, the
> key advantage in keeping them small is that you can easily see everything
> on one screen. So I would recommend scoping your milestones so that they
> are limited to whatever you feel is a manageable set of tasks that doesn't
> become overwhelming to look at.
>
> The line between manageable and overwhelming is obviously subjective but I
> think it's useful to think of milestones in this way.
>
> Anyway that's my $0.02 about milestones.
>
> Happy Practicing,
> Mukunda
>
>
>> 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 
>> 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 

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

2016-10-07 Thread Kevin Smith
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 
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 
> .
>
> 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
> .
>
> 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@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/teampractices
>
>
___
teampractices mailing list
teampractices@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/teampractices