Page MenuHomePhabricator

Estimate for: Adding custom task values within Maniphest 'Create Task' template
Closed, ResolvedPublic

Description

**Summary
We are in need of an estimation (work effort and budget cost as necessary) to add certain elements within Maniphest's 'Create Task' to more fully mirror our development process and enable teams to track assigned tasks. These added values would be designated to a specific type of ticket (Issue Type) so as to not clutter other teams' existing ticketing processes. They would further be tracked for additional new Maniphest functionality to be developed (see NOTE below).

**Story
Users who create or edit tasks in Phabricator will have options to distinguish the task as one particular Issue Type vs. another and identify, within that Issue Type, the Task's estimated work time, completion dates, and stages.

**Goals
• Map Phabricator Maniphest Tasks to a specific work flow process
• Enable a team to easily sort and track new Tasks within their specific work flow process
• Incorporate these new Product Types and values into additional new Maniphest functionality projects (see NOTE below)

**Design Requirements

For Task Creation:

a) Add Issue Type: ability to create multiple Issue Types and designate a ticket as one of them. Currently we have just one general catch-all type, which we could keep as the 'default'.

b) For any given Issue Type, ability to include the following new values:

• "Stage": i.e. ability to select between "To Do - Triage (default)"; "To Do - Planning"; "In Progress - Product"; In Progress - Dev"; "In Progress - UI"; Review; Closed.

• "Stage Due Date": Ability to select an estimated completion date for a task's current Stage. Editable throughout product lifecycle. Trackable for use in other Maniphest functionality.

• "Total Work Estimate (Owner)": Ability to manually input an estimated number of hours (measured in whole and half hour increments) general to the overall task (not specific to stage, etc.). Editable by user throughout task lifecycle. Trackable for use in other Maniphest functionality.

• "Work Done (Owner)": Ability to manually input a number of completed hours (measured in whole and half hour increments) general to the overall task (not specific to stage, etc.). Editable by user throughout task lifecycle. Trackable as a portion of the "Total Work Estimate (Owner)" for use in other Maniphest functionality.

**NOTE: This would be the first of 5 custom Maniphest projects which we would like to explore for estimation.

This first project (Custom Task Values) is a dependency for additional projects which include:

a)  Triage Tool View: displays a list of un-assigned Product Request tasks needing triage which are condensed and editable.
(Specs can be provided)

b)  Time Tracking View: enables display of users' open Tasks, with all tasks' completed work time tracked against their total estimated work time.
(Specs can be provided)

c)  "Task with Sub-tasks" query option / view: displays a list of open tasks with sub-tasks listed in association with each task.
(Specs can be provided)

d) "Stages with Swim Lanes" View: displays a list of open assigned tasks (of a specific Issue Type) with all associated sub-tasks grouped by Assigned, and "Swim Lane" columns reflecting each ticket's tracked current Stage.
(Specs can be provided)

{F137349}
{F137351}

Event Timeline

JoeFeffer assigned this task to epriestley.
JoeFeffer raised the priority of this task from to Needs Triage.
JoeFeffer updated the task description. (Show Details)
JoeFeffer added projects: DeviantArt, Maniphest.
JoeFeffer added subscribers: JoeFeffer, chrisbolt.

In general, we don't offer consulting/contracting services, and only want to add code to the upstream if we believe it will be broadly useful across organizations and use cases (since we have to maintain it going forward). To the degree that you have detailed requirements specific to your workflow, the most direct way to get the features you want built might be to fork Phabricator and hire a contractor to build the features (we don't have any great referrals, unfortunately).

If you want to work with the upstream, we do offer paid prioritization of features, but try pretty hard to limit this to things we'd want to put on our roadmap anyway. Often, this breaks down as having fairly good (but not perfect) overlap with what you want. Depending on how good this overlap is, you might be able to find some reasonable workflow compromise on the rest of the features, or develop extensions in house or by hiring a contractor.

In this case, it looks like Custom Fields can already do most of what you want. Have you looked at them? Here's a screenshot of a bunch of custom fields on my local install to give you a sense of how they work:

Screen_Shot_2014-04-02_at_1.15.47_PM.png (1×1 px, 186 KB)

Particularly, you should be able to add Type, Stage, Due Date, Estimate and Work Done using custom fields. Custom fields are filterable and editable. You can find Custom Field documentation here: https://secure.phabricator.com/book/phabricator/article/custom_fields/

So I'd suggest:

  • Figure out how close you can get to what you want by using Custom Fields.
  • Let us know what's still missing, or what you can't figure out how to do. I think you should be able to do almost everything you want already.
  • Based on that, we can determine how to move forward. For example:
    • If you need general behaviors, they might be reasonable upstream features.
    • If you need highly specific UI, Custom Fields are reasonably easy to extend locally.

For the other items:

  • Triage Tool: You should already be able to use Maniphest search to filter to any set of tasks, so "condensed and editable" is probably the key here. Particularly, after adding custom fields, you can save a query which shows tasks with type "Product Request" in the "Needs Triage" state. I'm not immediately sure what you mean by "condensed and editable", or exactly what you're envisioning.
  • Time Tracking View: We have a very beta application called Phrequent which does time tracking, but improving it to a useful level is probably a large amount of work. As described, this probably doesn't fit very well into our broader vision and might be better built locally. I can build you a 5-minute version when we get there.
  • Subtasks: See discussion in T4207.
  • Swim Lanes: As described, this probably doesn't fit well into our broader vision. Have you looked at Workboards? They're significantly different from what you describe, but might be close enough that they could serve as a starting point:

Screen_Shot_2014-04-02_at_1.17.36_PM.png (933×2 px, 159 KB)

In general, philosophically, Phabricator is not a high-process tool. Although we think we can improve it significantly as a project management tool, we don't envision it ever having the same level of sophistication, customization, user-definable workflows or detailed reporting that a tool like JIRA has. If you haven't already, it may be worth evaluating other tools (like JIRA) to see if they fit your requirements better without additional work. JIRA also has a far richer consulting ecosystem than we do.

Thanks for the great info for us to start with. We'll further evaluate current needs and keep this ticket open for continued discussion.

Sounds good, let me know if we can answer further questions as they come up.

chad added a subscriber: chad.

Sounds like this conversation has concluded.