Group milestone velocity and estimated complete date
Design
- Introduce a group milestone field called velocity, as an optional field.
- It is a user-entered value which reflects the team (the group's "velocity").
- TBD on the units and specific implementation. But it should be measured by weight units per time units.
- Given the start date and end date of the milestone, and the summed weights of the open/closed issues in the milestone, we would be able know if the milestone is ahead / behind schedule, will be on time / will be late.
- This information will be displayed on the milestone page so that teams can do long-term planning. But more importantly, it will be shown in the group Gantt view: https://gitlab.com/gitlab-org/gitlab-ee/issues/3237.
Scenarios
- These scenarios apply to both open and closed milestones. This logic/calculation ignores whether the milestone is open or closed.
Today < Start date < End date
- Only if the start date, end date, and velocity fields are all entered, the estimated complete date is calculated and shown.
- Consider sum of weights of all open issues assigned to milestone right now:
W
- Consider velocity:
V
- Calculate and display the
Estimated complete date := Start date + W / V
- If
Estimated complete date > End date
, displayDelayed
. Otherwise, displayOn time
.
Start date <= Today < End date
- Only if the start date, end date, and velocity fields are all entered, the estimated complete date is calculated and shown.
- Consider sum of weights of all open issues assigned to milestone right now:
W
- Consider velocity:
V
- Calculate and display the
Estimated complete date := Today + W / V
- If
Estimated complete date > End date
, displayDelayed
. Otherwise, displayOn time
.
Start date < End date <= Today
- If all issues are closed within the milestone, look at all the issues within the milestone, and find the one with the latest
closed_at
field. Take that to be theComplete date
of the milestone, and display it.- If
Complete date > End date
, displayCompleted late
. Otherwise, displayCompleted on time
.
- If
- If all issues are not closed within the milestone and the velocity field is entered:
- Consider sum of weights of all open issues assigned to milestone right now:
W
- Consider velocity:
V
- Calculate and display the
Estimated complete date := Today + W / V
. - Display
Delayed
.
- Consider sum of weights of all open issues assigned to milestone right now:
Edited by Victor Wu