Team Practices Group/Task Tracking

TPG uses Phabricator to track TPG-specific tasks (as opposed to work TPG is doing for other teams).

Phabricator Projects
The Team Practices Group (TPG) is tracking their work in two Phabricator projects. Each column in each project represents a state for open tasks.


 * 1) Team-Practices General team backlog. This is like a "Product Backlog".
 * 2) * To Triage
 * 3) * Team radar. The Team Radar column includes tasks that TPG is watching, but not necessarily working on.  The purposes are (a) to be able to recognize when a possible task becomes relevant and urgent, and (b) to preserve past discussion and planning for quick resumption of work.
 * 4) * General backlog
 * 5) Team-Practices-This-Week Work committed to in the current week. This is like a "Sprint backlog".
 * 6) * Backlog
 * 7) * Blocked or Waiting
 * 8) * In Progress
 * 9) * Needs Review
 * 10) * Done

Priority
TPG tracks task priority in several ways. Primarily, the priority of a task for TPG is determined by its location within the boards. determined first by which column and project the task is in, and then by the order of the task within each column.

TODO: what is the relative order of the column and projects? e.g., if someone is assigned a task to review and a task to complete, which comes first? Proposals:
 * Priority.jpgn 1. All tasks in Team-Practices-This-Week are more important than any tasks in Team-Practices. Within Team-Practices-This-Week, the rightmost column is most important and the leftmost least important.  Within each column, the top task is most important and the bottom task least important.  Within Team-Practices, To Triage is most important (because it could have a high-priority, urgent item), then General Backlog, then Team Radar.

A second way that priority is tracked is the Priority field in Phabricator. TODO: what do we want to do with this? Note that, if a task is in non-TPG projects, we don't have any control over this field.
 * Option 2. maintain a new field which is absolute order.  (What benefits?)
 * Option 1. Treat this as a severity field. If so, how can we reduce the name confusion?
 * Option 2. Ignore
 * Option 3. Use as tiebreaker
 * Option 4. Use both board location and Priority field. How?

Adding Work
Anyone can add new tasks at any time. New tasks are added to the To Triage column of the Team-Practices project.

Taking work
TPG members assign tasks to themselves - TODO: how/can this happen outside of Weekly Planning?

Finishing work
When a TPG member thinks they have completed a task: When reviewing a task:
 * 1) If the task needs review, ask (e.g., in IRC) who can review it
 * 2) assign it to them
 * 3) move the task to the In Review column
 * 4) Note: The team limits reviews to four tasks at once (see the denominator if the fraction to the right in the column title- the nominator is the number of tasks actually in review
 * 5) If not
 * 6) assign the task to Arthur (?)
 * 7) move the task to the Done column
 * 1) If somebody else should review it next,
 * 2) assign it to them
 * 3) leave it in Needs Review
 * 4) If it is acceptable as-is,
 * 5) Option A: move to Done column and assign to Arthur
 * 6) Option B: comment in the ticket.  (In the next review meeting; move it to Done)
 * 7) If it needs changes, move to In Progress Column and assign back to person who did the task.

Removing Work
TBD

Getting Stuck

 * 1) If a task is blocked by a dependency or is waiting on someone's input, move it to the Blocked or Waiting column.

Backlog Triage/Grooming Meeting
Conducted in a weekly meeting by Arthur + 1 rotating TPG member. However, until we are fully groomed and in sync, this is an all-TPG meeting. Up to 1 hour/week.
 * 1) Triage. For each item in the To Triage column of Team-Practices project, in descending order:
 * 2) Clarify the title and/or description
 * 3) If it can't be clarified, assign to the reporter to clarify, or to a TPG member to interview the reporter
 * 4) If TPG owns it, set the Priority Field.
 * 5) Move the task to Radar or General Backlog or cut.  To Cut:
 * 6) If it's a non-TPG task, remove the Team-Practices project from the task and explain why in the comment.
 * 7) If it's a TPG task, mark it resolved and explain why in a comment.
 * 8) TODO: What is the reporter, if not part of TPG, supposed to do next?
 * 9) Groom backlog.  For each item in the Backlog column, work down this list of checks, using judgment and progressive exploration to do as little as necessary to maintain the quality of the task:
 * 10) Can we cut or merge this?
 * 11) Should we skip this item for this week?  (Because it's already shovel-ready, or because nothing has changed)
 * 12) Should this move up or down in priority?
 * 13) Should it be retitled?
 * 14) Are there new or missed dependencies?
 * 15) Should anyone be added or removed from the list of people associated with the task?
 * 16) Is it shovel-ready?  TODO: need definition of shovel-ready for TPG.
 * 17) Check Radar.  For each item in the Radar column, in descending order:
 * 18) Does this item need attention?  If so, treat as a To Triage item and move out of Radar column.

Weekly Review Meeting
Conducted in a weekly meeting with all of TPG
 * 1) Check for Doneness.  For each item in the Done column of the Team-Practices-This-Week project, in descending order:
 * 2) Is this item Done? (Suggested: Arthur and original submitter (if not Arthur) decide together if it's Done.)
 * 3) If so, mark it resolved.
 * 4) If not, is it helpful to track the remaining work separately?
 * 5) If so, mark it resolved and open a new issue to cover remaining details
 * 6) If not, assign it to the appropriate person and move it back to In Progress or Blocked or Waiting.

Weekly Planning
Conducted in a weekly meeting with all of TPG.
 * 1) Review Needs Review.  For each item in the Needs Review column of the Team-Practices-This-Week project, in descending order:
 * 2) Understand the item status.
 * 3) If it's stuck, change priorities or assign to someone else
 * 4) Otherwise, leave as work in progress
 * 5) Review Progress. For each item in the In Progress column of the Team-Practices-This-Week project, in descending order, check to see if Phabricator has fallen behind reality (i.e., if somebody did work on the task during the week but didn't update Phab):
 * 6) Skip if relevant people are missing.
 * 7) Is it Done, or Ready for Review?  Do steps in Finishing Work above.
 * 8) Is it stuck?  Do steps in Stuck.
 * 9) Does the person it's assigned to want someone else to take it?
 * 10) Unstick stuck work.  For each item in the Blocked or Waiting column of the Team-Practices-This-Week project, in descending order:
 * 11) TODO: do what?  Assign to someone else?  split up?  escalate?
 * 12) Start new work.  For each item in the Backlog column of the Team-Practices-This-Week project, in descending order:
 * 13) Confirm that the item is shovel-ready. (TODO - may be replaced by having a shovel-ready column at the end of Grooming)
 * 14) Does anyone want to take this and start working on it this week?
 * 15) TPG members assign tasks to themselves.
 * 16) Is the task ready to start?  Person taking the task clarifies in the meeting or identifies how to get more information.
 * 17) Tasks being worked on are moved to the "In Progress" column.
 * 18) The team tries to limit Work In Progress to six tasks in progress at once (see the denominator if the fraction to the right in the column title- the nominator is the number of tasks actually in progress ).
 * 19) Pull from the General Backlog
 * 20) For each item in the General Backlog of Team-Practices, proceed as per Start New Work above (moving the item into Team-Practices-This-Week project)