Content
Updated by Christophe Bliard 12 days 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
<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" checked="checked" disabled="disabled"><span class="todo-list__label__description op-uc-p"></span></label></li></ul></td></tr><tr 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" checked="checked" disabled="disabled"><span class="todo-list__label__description op-uc-p"></span></label></li></ul></td></tr><tr 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" checked="checked" disabled="disabled"><span class="todo-list__label__description op-uc-p"></span></label></li></ul></td></tr><tr 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>
## Names and translations
<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" style="width:150px;"><p class="op-uc-p"><strong>Source string</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Remarks</p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>FR</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>DE</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>ES</strong></p></th></tr></thead><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Work estimates and progress </p></th><td class="op-uc-table--cell"><p class="op-uc-p">Context: Title of the pop-over that appears when you click on any of these fields: Work, Remaining work, % complete. </p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"><i>(awaiting finalisation of source string)</i></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Work</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p">Travail</p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Remaining work</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p">Travail restant</p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">% Complete</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">% réalisé</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"></p></td></tr></tbody></table></figure>
##
## Displaying two values
* Some work package attributes have two values:
* One value for the the parent work package itself.
* One value aggregating the work package and its children values, regardless of the children visibility in the current view.
* Both values are displayed together for the attribute. The aggregated value is prefixed with a "Σ". For instance "7 h · Σ 23 h".
* About the sums row displayed in work package table view, it sums the filtered work packages. As such, the sum does not include the values from filtered out children. The sum from the sum row can thus be different from the sum in the parent aggregated value.
# Features breakdown
## 13.2
### ☑️ 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 of Work and Remaining work attributes
* Work and Remaining work are displayed as dual value: one for self and one aggregated as described above.
* The aggregation sums the values of the work package and its descendants.
This is described in ###50953.
It has been shipped in workPackageValue:50953:version.
## 13.3
### ☑️ Make renamed attributes searchable with old names
* Make the new attribute names more discoverable by supporting the old names in search fields (like when adding a column to a work package view).
This is described in ###52119.
It will be shipped in workPackageValue:52119:version.
### ☑️ Link to aggregation details
* To help understanding how the aggregate value is computed, it link to a query view showing the work package and its children.
* The linked view shows the work and estimated work columns.
* Once % Complete displays two values, the % Complete column will be added to the query.
This is described in ###52076.
It will be shipped in workPackageValue:52076:version.
### ☑️ Change display of % Complete attribute
* Like "Work" and "Remaining work" attributes, "% Complete" attribute evolves and displays two values: one for the work package and one aggregating values from children
This is described in ###51188.
It will be shipped in workPackageValue:51188:version.
### ☑️ Remove Derived remaining work from work package form configuration
* The attribute Derived remaining work is internal. It is the aggregated value displayed after the Σ sign. It was added by accident when introducing it.
* It should not be visible outside of the Remaining work field and should be removed.
This is described in ###52252.
It will be shipped in workPackageValue:52252:version.
## 13.4
Nothing released
## 14.0
### ☑️ Consistent calculation of % Complete attribute
* "% Complete" is set automatically from other fields
* Either from Work and Remaining work values
* or from the statuses, in which case Remaining work is set automatically too
* Total "% Complete" is set from the work package's Total work and Total remaining work.
* Work, Remaining work, and % Complete values are _always_ consistent with each other.
* A popover allows to change the values: it displays them all and they get updated when one changes.
This is described in ###40749.
It has been will be shipped in workPackageValue:40749:version.
### ☑️ Seed a % Complete value for default statuses
* Each seeded status has a default % Complete value, saving the user from tediously entering one and making the "% Complete by status" mode immediately available.
This is described in ###50965.
It has been will be shipped in workPackageValue:50965:version.
## 14.1
### Exclude by status some work package from aggregation
* Work package statuses can be marked as excluded from work estimates aggregation.
* This is useful for statuses like "rejected" where the work, remaining work and % complete values should not be taken into account in the parent values
This is described in ###49409.
It will be shipped in workPackageValue:49409:version.
### Support multiple units
* Recording and display duration in different units (hours, days, weeks, months)
This is described in ###50954.
It will be shipped in workPackageValue:50954:version.
## Next releases
### Change display of Spent time attribute
* Like "Work" and "Remaining work" attributes, "Spent time" attribute evolves and displays two values: one for the work package and one aggregating values from children.
This is described in ###31998.
It will be shipped in workPackageValue:31998:version.
### Show Work, Remaining work and % Complete in version details page
This is described in ###52186.
It will be shipped in workPackageValue:52186:version.
### Project-level setting for % Complete calculation mode
* The mode of calculation for % Complete is no longer defined at the instance level but at the project level.
* The instance level setting defines the default setting value for new projects.
This is described in ###52737
It will be shipped in workPackageValue:52737:version.
### Calculate Remaining work based on Work and logged time
* This is on the wish list
* As of ##40749, Work, Remaining 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 is described in ###22800.
It will be shipped in workPackageValue:22800:version.
# Out of Scope
* Display of historical values using the baseline comparison feature.
* Enhancements to time recording
* Extension of 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
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" checked="checked" disabled="disabled"><span class="todo-list__label__description op-uc-p"></span></label></li></ul></td></tr><tr
## Names and translations
<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" style="width:150px;"><p class="op-uc-p"><strong>Source string</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Remarks</p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>FR</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>DE</strong></p></th><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p"><strong>ES</strong></p></th></tr></thead><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Work estimates and progress </p></th><td class="op-uc-table--cell"><p class="op-uc-p">Context: Title of the pop-over that appears when you click on any of these fields: Work, Remaining work, % complete. </p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"><i>(awaiting finalisation of source string)</i></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Work</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p">Travail</p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Remaining work</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p">Travail restant</p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td><td class="op-uc-table--cell" style="width:150px;"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">% Complete</p></th><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">% réalisé</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"></p></td></tr></tbody></table></figure>
##
## Displaying two values
* Some work package attributes have two values:
## 13.2
### ☑️ 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 of Work and Remaining work attributes
* Work and Remaining work are displayed as dual value: one for self and one aggregated as described above.
It has been shipped in workPackageValue:50953:version.
## 13.3
### ☑️ Make renamed attributes searchable with old names
* Make the new attribute names more discoverable by supporting the old names in search fields (like when adding a column to a work package view).
It will be shipped in workPackageValue:52119:version.
### ☑️ Link to aggregation details
* To help understanding how the aggregate value is computed, it link to a query view showing the work package and its children.
It will be shipped in workPackageValue:52076:version.
### ☑️ Change display of % Complete attribute
* Like "Work" and "Remaining work" attributes, "% Complete" attribute evolves and displays two values: one for the work package and one aggregating values from children
It will be shipped in workPackageValue:51188:version.
### ☑️ Remove Derived remaining work from work package form configuration
* The attribute Derived remaining work is internal. It is the aggregated value displayed after the Σ sign. It was added by accident when introducing it.
It will be shipped in workPackageValue:52252:version.
## 13.4
Nothing released
## 14.0
### ☑️ Consistent calculation of % Complete attribute
* "% Complete" is set automatically from other fields
It has been
### ☑️ Seed a % Complete value for default statuses
* Each seeded status has a default % Complete value, saving the user from tediously entering one and making the "% Complete by status" mode immediately available.
It has been
## 14.1
### Exclude by status some work package from aggregation
* Work package statuses can be marked as excluded from work estimates aggregation.
It will be shipped in workPackageValue:49409:version.
### Support multiple units
* Recording and display duration in different units (hours, days, weeks, months)
It will be shipped in workPackageValue:50954:version.
## Next releases
### Change display of Spent time attribute
* Like "Work" and "Remaining work" attributes, "Spent time" attribute evolves and displays two values: one for the work package and one aggregating values from children.
It will be shipped in workPackageValue:31998:version.
### Show Work, Remaining work and % Complete in version details page
This is described in ###52186.
It will be shipped in workPackageValue:52186:version.
### Project-level setting for % Complete calculation mode
* The mode of calculation for % Complete is no longer defined at the instance level but at the project level.
It will be shipped in workPackageValue:52737:version.
### Calculate Remaining work based on Work and logged time
* This is on the wish list
It will be shipped in workPackageValue:22800:version.
# Out of Scope
* Display of historical values using the baseline comparison feature.
[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