Content
View differences
Updated by Christophe Bliard over 2 years ago
# Goal
OpenProject contains extensive project controlling functions (effort estimation, progress calculation, time recording and reporting). These existing functions are to be extended for use in hybrid large-scale projects in which a combination of agile and classic process models is used. In particular, it should be possible to record or calculate the following values of a work breakdown structure both top-down and bottom-up via a hierarchy.
# Context
## Relevant work package attributes
The following work package attributes are focused on focussed on. They will also be renamed in this epic to make them more consistent with the project management frameworks.
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Name 13.1</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Name 13.2</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Editable for parent work packages</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Estimated time</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Work</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Remaining hours</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Remaining work</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Progress (%)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">% Complete</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Currently values can not be edited for parent work packages</p></td></tr></tbody></table></figure>
## Displaying two values Support multiple units
* Some Recording and display in different units (hours, days, weeks, months)
* Definition and application of conversion coefficients between the different units (e.g. hours per working day, working days per week, working days per month, etc.)
## Calculation and display in work packages views
* The work package attributes for % Progress, Work and Remaining work Progress % value for a work package have two values:
* One The value for the the parent work package itself.
* One value aggregating The total sum including all children work packages (including non-visible work packages).
* Both the values of the respective work package and its children values, regardless of the children visibility aggregated values including the sub-elements should be displayed in the current view. cells.
* Both When filtering child work packages from the list the sum values are displayed together after "Σ" remain unchanged. The percentage % for the attribute. The aggregated value is prefixed with a "Σ". For instance "7 h · Σ 23 h".
* About filtered work packages in the sums row displayed in work package table view, it sums only includes the values of the filtered work packages. As such, the sum It does not include the values from children values which are filtered out children. The sum from the sum row can thus be different from the sum in the parent aggregated value. out.
# Features breakdown
## Rename Estimated time, Remaining hours, and Progress (%) attributes
The attributes described above have been renamed in ###50953.
It has been shipped in workPackageValue:50953:version.
## Change calculation and display Out of Work and Remaining work attributes Scope
* Work and Remaining work are displayed as dual value: one for self and one aggregated as described above. Display of historical values using the baseline comparison feature.
* The aggregation sums the values Enhancements to time recording
* Extension of the work package and its descendants. packages filter
# Visuals
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78899/content"></div><figcaption class="op-uc-figure--description">Full hierarchy</figcaption></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78898/content"></div><figcaption class="op-uc-figure--description">Child work packages filtered out</figcaption></figure>
# Acceptance criteria
* For the estimated time field it is possible to understand whether a value is empty (not set) or set to 0 h. This is described in ###50953.
It allows to better understand if an estimate has been shipped in workPackageValue:50953:version. made or not.
* Unset estimated time is included by 0 h into the calculation.
## Make renamed attributes searchable with old names Visuals
* Make [https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257](https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257)
# Planning
First feature: have the new attribute names more discoverable by supporting fields being renames, and "Work" and "Remaining Work" fields sums including the old names work package own value in search fields (like when adding a column addition to a work package view). children's values.
This is described in ###52119.
It will be shipped in workPackageValue:52119:version. a good initial basis for demo.
## Link * ##50953
* ###50955
* ###50956
* ###51193
* ###50958
* ###50959
* ###50960
* ###50961
* ###50962
* ###50963
\------
The fields need to aggregation details be renamed in the code as well for consistency
* To help understanding how the aggregate value is computed, it link ###51194
\------
Feature: Link from work / estimated work sum to a query view showing of the work package and its children.
* The linked view shows the work and estimated work columns.
* Once % Complete displays ###52076
\------
Feature: have "% Complete" field having two values, the one for work package % Complete column will be added to value and set manually, and one derived value computed automatically from "Work", "Status" and "% Complete" values of the query. work package and its children.
This is described in ###52076.
It will be shipped in workPackageValue:52076:version. * ##51188
* ###50957
* ###51187
* ###51189
* ###51190
* ###51191
* ###50964
* ###50965
## Remove Derived remaining \------
Feature: have "Spent time" field having two values: one reflecting work package spent time, and one derived from spent time of work package form configuration and its children.
* The attribute Derived remaining work is internal. It is the aggregated value displayed after the Σ sign.
* It should not be visible outside of the ###31998
\------
Feature: calculate Remaining work field based on Work and should be removed. Logged time
This is described in ###52252.
It will be shipped in workPackageValue:52252:version. * ###22800
## Remove Derived work \------
Feature: being able to record time with different units
* ###50954
* ###50967
* ###50968
* ###50969
# Open
* How does the progress calculation currently works? I tried setting estimated time and Derived log some time spent. Neither progress (%) or remaining work from activity thread time changed.
* The > NL: Currently the attributes Derived work remaining hour and Derived remaining work progress (%) are internal. They not connected. Both attributes are the aggregated value displayed after the Σ sign.
currenlty set manually.
* They Unset estimates are values cached to avoid repetitive computations and should not be visible to the users.
considered as 0h
* This is a proposition to remove them So how are they handled?
This > NL: Don't know how is described in ###52253.
It will be shipped in workPackageValue:52253:version. this currently handled. Let's think it through what makes sense.
## Change calculation and display of % Complete attribute
* Like "Work" and "Remaining work" attributes, "% Complete" attribute evolves and displays two values: one for When changing "Calculate the work package done ratio with" "Use work package status", and one aggregating values from children
then changing status, nothing happens. It was a bit disappointing. I later read the docs and learned that statuses have to be configured to associate a progress to them.
* The new display Couldn't this information be given through the UI somehow?
> NL: Good idea. We could add the pre-defined % values to the status label and to the new calculation are status selection dialogue. We could also use Harvey balls to show the progress.
* As reported in separate ##49409, when using "Use work packages, package status", work packages with "rejected" status are still taken into account for calculating progress.
* Typical use: you can increase the progress of an epic by adding a lot of of rejected child packages to make it. Nothing changed, but the features smaller and shippable independently progress increases.
* At first It sounds like a wrong behavior. Should it be changed? How?
> NL: Good point. We need to explore this. I agree it does not really make sense to include rejected work packages into the display will calculation. A workaround could be updated with to manually remove rejected work packages from the two values, and work package hierarchy. Please keep in mind that the calculated value will be the same as it currently status "Rejected" is
* Then calculation method will an individual configuraiton. This might be updated so different for each installation. This implies that Work, Remaining work, and % Complete are consistent with each other.
we need to have a new setting for work package status like "not included in progress calculation".
* When Work is set, Remaining using "Use work and package field", what happens when some progress % Complete are consistent (meaning (100% - set on work packages, and the setting is switched to "Use work package status"?
> NL: Never tried this. I would assume the manually entered values for progress % Complete) x Work == Remaining Work is _always_ true)
get lost. Can you please check the current behavior and update the docs accordings?
* When calculating Using "Calculate the % Complete aggregated value, any work package having Work unset or 0h done ratio with" "Use work package status" seems out of scope for this epic.
* I assume this epic is excluded from focused on the computation
"Use work package field" use case. The new display "Use work package status" is described in ###51188.
out of scope and should simply continue to work identically. It will may be shipped revised in workPackageValue:51188:version.
The new calculation is described in ###40749.
It will be shipped in workPackageValue:40749:version. (It should be 14.0 as it will be a breaking change)
## Support multiple units
later work package. Correct?
* Recording About roadmap and display duration in different units (hours, days, weeks, months)
This versions, the total progress of a version is described in ###50954.
It will be shipped in workPackageValue:50954:version.
## Exclude by calculated from the open/closed status some of the work package from aggregation
packages belonging to the version.
* Work package statuses I assume this is out of scope for this epic? It should simply continue to work the way it is working currently. Correct?
* "Estimated Time" can currently take 0h or be marked as excluded unset. having 0h behaves like being unset. When unset the estimated time is interpolated from work estimates aggregation. the average estimated time of the sibling, so that having a 0% or 50% or 100% progress will have an impact on the parent progress %.
* This is useful for statuses like "rejected" where has the work, remaining work and % strange side-effect that a 0h task going from 0% to 100% complete values should not be taken into account in will change the parent values
This progress %.
* Same if a 0h child work package is described in ###49409.
It marked as closed: the % progress will be shipped in workPackageValue:49409:version.
## Deprecate considered 100% and remove the config option linking parent progress % Complete will change accordingly (a bug prevent this update to status
be done immediately. It will take effect at next progress% calculation)
* As Semantically, I think an estimated time of ##40749, Work, Remaining work, and % Complete values are computed from each other and must 0h for a task does not make any sense. Either it has a minimal duration, like 1h, or it is unset. "0h" should be consistent.
a forbidden value, or should be converted back to an unset value.
* Modifying % Complete due I'd love to a status change would mean also modifying either Work or Remaining work know more about when users set the time to keep 0h and what that means to them, to challenge if there are valid use cases for 0h.
* In this epic, the values consistent with each other. This acceptance criteria indicate: "_Unset estimated time is not desirable as this would mess up the values set included by 0 h into the user for Work and Remaining work.
calculation._"
* The migration path is still being discussed
This is described in ###52130
It will be shipped in workPackageValue:52130:version. (It should be 14.0 as Does it mean that the estimated time interpolation will be a breaking change)
## Change display of Spent time attribute
* Like "Work" no longer occur, and "Remaining work" attributes, "Spent time" attribute evolves and displays two values: one for that the completion of a 0h or unset work package and one aggregating values from children.
This is described in ###31998.
It will be shipped in workPackageValue:31998:version.
## Show Work, Remaining not impact the completion of the parent work and % Complete in version details page
This package anymore? (when doing the completion average weighted by work, work of a work package being 0h means the completion is described in ###52186.
It will be shipped in workPackageValue:52186:version.
## Calculate Remaining work based on Work and logged time
not taken into account)
* This is on If so, how does it behave for a parent work package with children having only unset work? That means the wish list
progress can not be determined?
* As of ##40749, Work, Remaining Proposition: if all children have unset work, and % Complete values are computed from each other and must be consistent.
* Logging time spent means Remaining work and % Complete would be changed automatically
This the behavior is described in ###22800.
It will be shipped in workPackageValue:22800:version.
# Out the same as currently: the progress of Scope
* Display the parent is the average of historical values using the baseline comparison feature.
* Enhancements children progress. if some children have set work, the behvior differs from currentyl: only the set ones are used to time recording
* Extension of compute a completion average weighted by the work packages filter
# Visuals
[https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257](https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257)
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78899/content"></div><figcaption class="op-uc-figure--description">Full hierarchy</figcaption></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78898/content"></div><figcaption class="op-uc-figure--description">Child work packages filtered out</figcaption></figure>
# Other
The fields need to be renamed in the code for consistency
* See ###51194
# Open
value.
* Can a work package hierarchy span on multiple projects?
* If so, what if some modules like backlog is enabled in one project, but not in another? Would the Remaining Hours field still be displayed?
* In the UI, in form configuration, it's possible to display "Derived remaining hours", and this value is also displayed in the "Remaining hours" field. For instance, "Remaining hours" would display "5h (+6h)" while "Derived remaining hours" would display "6h". It feels redundant. For "Estimated time", there is no "Derived estimated time" field available for display.
* Proposition: remove the "Derived remaining hours" field from the form configuration.
OpenProject contains extensive project controlling functions (effort estimation, progress calculation, time recording and reporting). These existing functions are to be extended for use in hybrid large-scale projects in which a combination of agile and classic process models is used. In particular, it should be possible to record or calculate the following values of a work breakdown structure both top-down and bottom-up via a hierarchy.
# Context
## Relevant work package attributes
The following work package attributes are focused on
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Name 13.1</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Name 13.2</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Editable for parent work packages</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Estimated time</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Work</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Remaining hours</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Remaining work</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Progress (%)</p></td><td class="op-uc-table--cell"><p class="op-uc-p">% Complete</p></td><td class="op-uc-table--cell"><ul class="todo-list op-uc-list_task-list op-uc-list"><li class="op-uc-list--item"><label class="todo-list__label"><input type="checkbox" disabled="disabled" checked="checked"><span class="todo-list__label__description"></span></label></li></ul></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Currently values can not be edited for parent work packages</p></td></tr></tbody></table></figure>
## Displaying two values
* Some
* Definition and application of conversion coefficients between the different units (e.g. hours per working day, working days per week, working days per month, etc.)
## Calculation and display in
* The work
* One
* One value aggregating
* Both
* Both
* About
# Features breakdown
## Rename Estimated time, Remaining hours, and Progress (%) attributes
The attributes described above have been renamed in ###50953.
It has been shipped in workPackageValue:50953:version.
## Change calculation and display
* Work and Remaining work are displayed as dual value: one for self and one aggregated as described above.
* The aggregation sums the values
* Extension
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78899/content"></div><figcaption class="op-uc-figure--description">Full hierarchy</figcaption></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78898/content"></div><figcaption class="op-uc-figure--description">Child work packages filtered out</figcaption></figure>
# Acceptance criteria
* For the estimated time field it is possible to understand whether a value is empty (not set) or set to 0 h.
It
* Unset estimated time is included by 0 h into the calculation.
## Make renamed attributes searchable with old names
* Make
# Planning
First feature: have
This is described in ###52119.
It will be shipped in workPackageValue:52119:version.
## Link
* ###50955
* ###50956
* ###51193
* ###50958
* ###50959
* ###50960
* ###50961
* ###50962
* ###50963
\------
The fields need
* To help understanding how the aggregate value is computed, it link
\------
Feature: Link from work / estimated work sum
* The linked view shows the work and estimated work columns.
\------
Feature: have "% Complete" field having
This is described in ###52076.
It will be shipped in workPackageValue:52076:version.
* ###50957
* ###51187
* ###51189
* ###51190
* ###51191
* ###50964
* ###50965
## Remove Derived remaining
Feature: have "Spent time" field having two values: one reflecting
* The attribute Derived remaining work is internal. It is the aggregated value displayed after the Σ sign.
* It should not be visible outside of the
\------
Feature: calculate
This is described in ###52252.
It will be shipped in workPackageValue:52252:version.
## Remove Derived work
Feature: being able to record time with different units
* ###50954
* ###50967
* ###50968
* ###50969
# Open
* How does the progress calculation currently works? I tried setting estimated time
* The
This
It will be shipped in workPackageValue:52253:version.
## Change calculation and display of % Complete attribute
* Like "Work" and "Remaining work" attributes, "% Complete" attribute evolves and displays two values: one for
> NL: Good idea. We could add the pre-defined % values to the status label
* As reported
* Typical use: you can increase the progress of an epic by adding a lot of of rejected child packages
* At first
> NL: Good point. We need to explore this. I agree it does not really make sense to include rejected work packages into
* Then calculation method will
> NL: Never tried this. I would assume the manually entered values for progress
* I assume this epic
The new calculation is described in ###40749.
It will be shipped in workPackageValue:40749:version. (It should be 14.0 as it will be a breaking change)
## Support multiple units
This
It will be shipped in workPackageValue:50954:version.
## Exclude by
* "Estimated Time"
* This is useful for statuses like "rejected" where
This
* Same if a 0h child work package
It
## Deprecate
* In this epic,
This is described in ###52130
It will be shipped in workPackageValue:52130:version. (It should be 14.0 as
## Change display of Spent time attribute
* Like "Work"
This is described in ###31998.
It will be shipped in workPackageValue:31998:version.
## Show Work, Remaining
This
It will be shipped in workPackageValue:52186:version.
## Calculate Remaining work based on Work and logged time
* Logging time spent means Remaining work and % Complete would be changed automatically
This
It will be shipped in workPackageValue:22800:version.
# Out
* Display
* Enhancements
* Extension of
# Visuals
[https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257](https://www.figma.com/file/znrocQvFNLb5jXRXNo7oeD/Progress-estimation?node-id=52-9257)
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78899/content"></div><figcaption class="op-uc-figure--description">Full hierarchy</figcaption></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/78898/content"></div><figcaption class="op-uc-figure--description">Child work packages filtered out</figcaption></figure>
# Other
The fields need to be renamed in the code for consistency
* See ###51194
# Open
* If so, what if some modules like backlog is enabled in one project, but not in another? Would the Remaining Hours field still be displayed?
* In the UI, in form configuration, it's possible to display "Derived remaining hours", and this value is also displayed in the "Remaining hours" field. For instance, "Remaining hours" would display "5h (+6h)" while "Derived remaining hours" would display "6h". It feels redundant. For "Estimated time", there is no "Derived estimated time" field available for display.
* Proposition: remove the "Derived remaining hours" field from the form configuration.