Content
Updated by Jens Ulferts 5 days ago
**As** a project portfolio manager
**I want to** have phases and gates adjusted automatically based on changes of preceding phases
phases/gates
**so that** rescheduling of is simpler and less error prone.
### Acceptance criteria
* Phases Defined in the epic <mention class="mention" data-id="59177" data-type="work_package" data-text="#59177">#59177</mention>&nbsp;
### Out of scope
* Backwards planning
* Durations
### Outdated specs - to be reworked
* All changes
* Stages and gates are automatically (re)scheduled to the extend the information provided by the user allows for. Whenever
* See the finish date of **Scenarios** section for a phase changes, detailed specification.
* \[open\] Are all the succeeding phase's start date is updated to be on scenarios correct?
* Automatic scheduling happens as soon as two values out of the non working day after the three involved attributes (start date, end date selected &amp; duration) are set (analogous to be the finish date of the predecessor.
work packages).
* If the succeeding phase has For gates, as they have a finish date set fixed duration of 0 and had a start only one date, that date set that is now changed, the finish date is updated only value that needs to preserve the duration be filled.
* Project start/finish dates behave similar to gates.
* Scheduling a predecessor (by providing two out of the succeeding phase. The duration is three values, or the number of non working days between one value for a gate), can lead to the successor being rescheduled in turn (e.g. a succeeding stage/gate receives a start date) which can continue as long as each successor is completely specified.
* Since gates and the also project finish dates (both dates included). The finish date might thus only require a single value to be moved into scheduled, they will always be scheduled once a predecessor is complete.
* Scheduling a successor (by providing two out of the future three values, or the past.
* If one value for a gate), can lead to the succeeding phase has predecessor being rescheduled in turn (e.g. a finish date set but did not have preceding stage/gate receives a start date set before, no duration existed before. Therefore, the successor's finish date does not need to be updated date) which can continue as long as it each successor is at least on the date of the completely specified.
* Since gates and also project start date. If the finish date dates only require a single value to be scheduled, they will always be scheduled once a successor is before the newly set start date, the finish complete.
* Stages do not receive a single date when being automatically scheduled. e.g. if a preceding gate is updated to be on set, the same date as the succeeding stage does not receive a start date.
* This continues until However, if two values are then available (see above), the end of the chain of phases is reached.
stage will be scheduled.
* Automatic scheduling happens fully automatic. The user reason for this is not asked for confirmation.
* Even if the user hasn't yet specified the that stages always require two dates for durations of all the phases, automatic scheduling will start as soon and to the extend where durations of succeeding phases are present.
be defined.
* Automatic scheduling only happens forward. Therefore, setting a finish The date on a phase that the stage would inherit from its neighbour is before its start date will result displayed in an error being displayed. the table (grayed out).
* The start date will not be automatically changed. Even if the provided finish date stage would inherit from its neighbour is not before preselected in the start date, the duration is not kept in this case, but changes.
date picker. The user can choose to select a different value.
* Phases active in a project Active stages/gates are considered to be following each other based on the sort order in the administration.
* In case a phase stage/gate is inactive in a project, the next active phase stage/gate is considered to be the successor. Multiple inactive phases stages/gates can be ignored that way.
* Inactive phases Stages/gates not active in the project are not scheduled.
In case a stage/gate is inactivated, it keeps its dates.
* If The project start date is considered to be the user removes first gate for the sake of automatic scheduling.
* The project finish date is considered to be the last gate for the sake of automatic scheduling.
* Non working days
* Are displayed in the date picker
* Are allowed values for start and end date and do not count towards the duration.
* This is subject to change, see &quot;out of scope&quot;.
* Gaps (implicit distance between the end date of a phase, this also removes preceding and the start date of the a succeeding phase. lifecycle step) are not allowed.
* The finish lag (explicit distance between the end date of a preceding and the start date of a succeeding phase lifecycle step) is not touched for now always 0.
* This is subject to change in this case.
a later feature.
* If The lag of 0 means
* A stage succeeding another stage will have a phase start date that is activated, depending on its position in the sort order, it may then automatically receive next working day relative to the end date of the preceding stage&#39;s end date.
* A gate succeeding a new start stage will have a date that is on the same date as the preceding stage&#39;s end date.
* If it already had A stage succeeding a duration (start/finish gate will have a start date set), its finish date would then also be updated that is on the next working day relative to keep the duration. This might then trigger a rescheduling date of succeeding phases.
* If it had no duration, the preceding stage&#39;s date.
### **Scenarios**
(Within the scope of the scenarios, when gates are mentioned, this includes the project start and finish date but not the other way around.)
#### **If the dates/duration were not filled completely before**
As stated in the acceptance criteria, scheduling happens when:
* For stages: two out of three values (start date, end date, duration) are set (one might be have been set but before)
* For gate: the finish date would remain unset. This might is set
Since active life cycle steps are always considered to be in turn unset a follows relationship, scheduling a step can lead to the start date successor/predecessor receiving the necessary information to be automatically scheduled in turn. Scheduling can thus propagate both along the line of successors as well as along the succeeding phase.
* If line of predecessors. This continues until a phase stage is deactivated, met that has then only one value set or until the dates end of the deactivated phase are kept. The new chain of active phases is then reached. Gates, since they only require a single value are always continued to be automatically scheduled from and will schedule successors/predecessors in turn:
* If scheduling a succeeding gate: Its date will be on the position of date (for a preceding gate) or the deactivated phase onward.
end date (for a preceding stage)
* Adding If scheduling a preceding gate: Its date will be on the date (for a succeeding gate) or removing non working days triggers one date before the start date (for a rescheduling of all phases spanning succeeding gate)
If a stage is met it will receive :
* If scheduling a succeeding stage: Its start date will be 1 day after the affected days. In turn, successors of those phases are also rescheduled. The goal date (for a preceding gate) or one 1 day after the end date (for a preceding stage)
* If scheduling a preceding stage: Its end date will be on the date (for a succeed gate) or one day before the start date (for a preceding stage)
(\[open\] will the value be persisted in this the database in case the stage would end up with only the start or finish date. The fontend is to keep display that date grayed)
The stage thus receiving a start/end date might then have two out of the three necessary values, and will be rescheduled and might continue to schedule in turn:
* If the stage used to have a duration unchanged.
only, it will then get its start/end date calculated:
* Deleting, adding, reordering phases in start date + (duration - 1)
* end date - (duration - 1)
* If the global administration potentially affects projects since they might stage used to have a start/end date only, it will get its duration calculated:
* end date - start date + 1
#### **If date/duration were already have phases active provided before**
Updating an already completely specified stage can be done in three ways and scheduled. For now, no automatic each leads to a different rescheduling happens in this case. But of the first time successor/predecessor:
If the user touches start date is updated, the lifecycle, duration is increased/decreased accordingly. Because a date range picker is employed, the schedule user&#39;s intend is updated. Again, clear. The preceding stages/gates are updating accordingly without changing their duration.
If the goal finish date is to keep updated, the duration of is increased/decreased accordingly. Because a date range picker is employed, the phases unchanged.
### Out of scope user&#39;s intend is clear. The succeeding stages/gates are updating accordingly without changing their duration.
* Backwards planning
* Durations
* Gaps (implicit distance between If the end duration is increased/decreased, the finish date is updated accordingly. Then, the succeeding stages/gates are moved by the same amount without changing their duration.
For gates and the project start/finish date, the rescheduling of the predecessors/successors happens accordingly.
#### If a dates/duration is removed
If the dates of a stage is removed, the duration is removed. If the duration is removed, the dates are removed. Then, the succeeding and preceding stages also might loose their dates and the duration. A gate encountered like this, will always return its date. A preceding stage will loose its end date and duration. A succeeding stage will lose its start date of and duration.
(\[open\] same as for when receiving dates but not having enough data to reschedule, it is unclear whether the stage should also loose its other date in the backend or wether to still keep. In either case it is to be displayed grayed out in the frontend)
The removal will not continue on after a stage is met.
#### If a stage/gate is deactivated
If a gate is deactivated, no rescheduling needs to take place. The gate will loose its date.
If a stage is deactivated, its start/finish date are removed but its duration is kept. The succeeding lifecycle step) stage/gate and its successors are not allowed.
* The moved into the past so that no lag (explicit distance between the end disabled stage&#39;s predecessor and successor remains.
(\[open\] This currently contradicts the figma files)
#### If a stage/gate is activated
If a gate is activated the gate receives the predecessors finish date of (stage) or date (gate) for its own date.
If a preceding and stage is activated, it receives the day after the predecessors finish date (stage) or date (gate) as its start date. Its finish is the start date plus the potentially stored duration. If no duration is stored, a duration of 1 is assumed so the finish date is on the same date of the start date. Succeeding stages and gates are rescheduled into the future accordingly.
(\[open\] This currently contradicts the figma files)
#### Other scenarios
* Scenarios where the LifeCycleDefinitions are modified:
* When a succeeding lifecycle step) cannot be set by definition is added:
* Expected result: No rescheduling.
* When a definition is deleted:
* Expected result: No rescheduling.
* When 2 definitions are reordered:
* Currently, no automatic rescheduling happens. But the first time the user currently. By that, it touches the lifecycle, the out of order lifecycle steps are reordered keeping their duration unchanged.
* Scenarios where Non Working days or Non Working weekdays are modified:
* When a Non Working Day or Weekday is effectively always 0.
added or removed:
* Expected result: No rescheduling.
**Out of scope**
* Non working days are for now available start/end dates and count towards the duration.
* This is subject to change in but doing so would increase the complexity.
* Adding a later feature. lag value other than 0 will be implemented later.
**I want to** have phases
### Acceptance criteria
* Phases
### Out of scope
* Backwards planning
* Durations
### Outdated specs - to be reworked
* All changes
* Stages and gates
* See
* \[open\] Are all
* Automatic scheduling happens as soon as two values out of
* Project start/finish dates behave similar to gates.
* Scheduling a predecessor (by providing two out
* Since gates
* Scheduling a successor (by providing two out of
* If
* Since gates and also project
* Stages do not receive a single
* Even if the user hasn't yet specified the
*
* The project
* Non working days
* Are displayed in the date picker
* Are allowed values for start and end date and do not count towards the duration.
* This is subject to change, see &quot;out of scope&quot;.
* Gaps (implicit distance between the end date of
*
* This is subject to change
* A stage succeeding another stage will have
* A gate succeeding
* If it had no duration, the
### **Scenarios**
(Within the scope of the scenarios, when gates are mentioned, this includes the project
#### **If the dates/duration were not filled completely before**
As stated in the acceptance criteria, scheduling happens when:
* For stages: two out of three values (start date, end date, duration) are set (one
* For gate:
Since active life cycle steps are always considered to be
* If
* If scheduling a succeeding gate: Its date will be on
If a stage is met it will receive :
* If scheduling a succeeding stage: Its start date will be 1 day after
* If scheduling a preceding stage: Its end date will be on the date (for a succeed gate) or one day before the start date (for a preceding stage)
(\[open\] will the value be persisted
The stage thus receiving a start/end date might then have two out of
* If the stage used to have a
* end date - (duration - 1)
* If
* end date - start date + 1
#### **If date/duration were
Updating an already completely specified stage can be done in three ways
If
If
### Out of scope
* Backwards planning
* Durations
* Gaps (implicit distance between
For gates and the project start/finish date, the rescheduling
#### If
If the dates of a stage is removed, the duration is removed. If the duration is removed, the dates are removed. Then, the succeeding and
(\[open\] same as for when receiving dates but not having enough data to reschedule, it is unclear whether the stage should also loose its other date in the backend or wether to still keep. In either case it is to be displayed grayed out in the frontend)
The removal will not continue on after
#### If a stage/gate is deactivated
If a gate is deactivated, no rescheduling needs to take place. The gate will loose its date.
If a stage is deactivated, its start/finish date are removed but its duration is kept. The
* The
(\[open\] This currently contradicts the figma files)
#### If a stage/gate is activated
If a gate is activated the gate receives the predecessors finish
If
(\[open\] This currently contradicts the figma files)
#### Other scenarios
* Scenarios where the LifeCycleDefinitions are modified:
* When
* Expected result: No rescheduling.
* When a definition is deleted:
* Expected result: No rescheduling.
* When 2 definitions are reordered:
* Currently, no automatic rescheduling happens. But
* Scenarios where Non Working days or Non Working weekdays are modified:
* When a Non Working Day or Weekday
**Out of scope**
* Non working days are for now available start/end dates and count towards the duration.
*
* Adding