Page MenuHomePhorge

Consider allowing milestone columns to be ordered arbitrarily on workboards
Open, WishlistPublic

Description

This is a change that I made to wikimedia's fork which we found quite useful. It's a trivial change but upstream wasn't interested. It could be made configurable with the default set to enforce milestone ordering or the ordering enforcement can be removed entirely, as I did for Wikimedia.

Some rationale for the change:

  • Patch: rPHAB042685bdf637: Allow milestone columns to be reordered.
    • epriestley was very much against this idea but wikimedia's users loved it.
    • Milestones, unlike subprojects, are mutually exclusive, so a task can only be in one milestone in the superproject. This has the convenience that adding a task to a milestone automatically removes it from any sibling milestone within the same superproject.
    • Reordering milestones is convenient when you want to treat milestones as workflow steps rather than sequential numerical versions. Example: https://phabricator.wikimedia.org/project/board/20/
    • upstream product vision was to use milestones exclusively for sequential things like "Maniphest V2" or sprints.
    • Wikimedia chose to abuse milestones for workflow steps and being stuck with the ordering that phabricator enforces was a big inconvenience for that use-case.

Revisions and Commits

Event Timeline

epriestley was very much against this idea but wikimedia's users loved it.

Do we have epristley's reasoning as to why he was against this? Might help in deciding about including this patch in Phorge.

epriestley was very much against this idea but wikimedia's users loved it.

Do we have epristley's reasoning as to why he was against this? Might help in deciding about including this patch in Phorge.

There is quite a lot of history on this one: https://secure.phabricator.com/T12144

Reordering milestones is convenient when you want to treat milestones as workflow steps rather than sequential numerical versions.

Projects and Subprojects already have the Workboard function, which lets you create custom columns for workflow steps. It is not clearly visible in Maniphest in which column a given task is, but you can see it in the Task view and moving a task from one column to another is possible in both the Task view and Workboard view. You can reorder these columns on the Workboard however you like. Heck, you can even have multiple projects assigned to a specific task and have them in independent places on the workboard. (Useful when you're treating projects and subprojects as teams of people)

I'm honestly with epristley on this one, because I don't see a reason as to why allow the reordering of milestones, unless you're absuing them like that.

That being said, which column a particular task is in should probably be more visible in Maniphest (possibly even filterable, so that one can just show all tasks in group Engineering, column Backlog)

epriestley was very much against this idea but wikimedia's users loved it.

Do we have epristley's reasoning as to why he was against this? Might help in deciding about including this patch in Phorge.

There are two reasons to reorder milestones.

  1. You accidentally created them in the wrong order (or need to insert a new one in the middle of the sequence). It's really annoying and hostile UX to be forced to rename them one by one. Especially when other types of columns already allow you to easily adjust the order.
  2. For abusing milestones as workflow steps.

I think the reasoning is based on defining the concept of a milestone narrowly.

Phabricator's idea of a milestone is essentially a bucket to track tasks that are intended to be resolved during a release cycle. Each milestone is ordered relative to the other milestones. Any tasks remaining open at the end of the milestone get moved on to the next milestone and a task cannot exist within more than one milestone at a time.

Removing the sequential nature of milestones makes them much more flexible as workflow steps rather than time periods.

You could have something like:

InboxBacklogEstimatedWatchingTestingDeployed

One of the main advantages is that you can tag a task directly into a milestone from anywhere that phabricator lets you edit the projects which isn't as convenient for regular columns. Specifically, when you add a task to a milestone it gets removed from other milestones within the same project. This mutual-exclusion is the key benefit which you don't get with regular workboard columns.

valerio.bozzolan triaged this task as Wishlist priority.EditedOct 11 2023, 06:22

I triage this to Wishlist since it's indeed useful to some people but it's somehow still controversial. In order to attract more eyes, adding also Discussion Needed.

In the meanwhile, feel free to enjoy this feature that it's maybe a needed compromise :)

So, you keep Milestones in their order, but you can at least rename them quickly and easily, so you can swap names and move Tasks if you want to. (Again, still not optimal, but still useful to me)

T15143: Allow to quick-edit a Milestone name from Workboard menu