Changing the Date of a Milestone using the Gantt View

I would like to suggest a change to the logic that is involved with making a change to a milestone task when using the Project Management settings. This is based on the idea that a person must specifically set the duration to 0d to define a milestone that displays the diamond character instead of a bar.

For a task that is defined as a milestone (duration = 0d), it is most likely that if that person either (a) changes the start date or (b) changes the end date or (c) drags the location of the diamond within the gantt view with the mouse … that the person intends for the task to remain a milestone.

Currently, actions that cause a milestone date to change either result in an error (start date > end date) or the duration is automatically changed to 1d. I’d like to propose the following behavior instead, which will provide a much better user experience:

Action: User change the start date. Result: The end date is set equal to the start date and the duration remains 0d.

Action: User changes the end date: Result: The start date is set equal to the end date and the duration remains 0d.

Action: User drags the diamond symbol within the gantt view. Result: The start date and the end date change accordingly and the duration remains 0d.

If a person really does want to change the task to something with a non-zero duration (i.e. something other than a milestone) then they can first change the duration to 1d or some other duration before modifying the dates.

If you think users may have questions about how to make modifications that are different from the assumptions in logic built into the spreadsheet, then perhaps consider the idea of using pop-up notes (in place of pop-up error messages) that suggest a certain action. For example, if a person changes the Start Date or End Date of a milestone, you could show a message at the bottom of the screen that says β€œTo change a milestone to a task with a non-zero duration, first change the duration.”

We will get back to you on this after we brainstorm internally. Thanks for the feedback.