Content
View differences
Updated by Parimal Satyal over 1 year ago
**As a** project manager
**I want to** automatically move a set of work packages to the earliest date possible
**So that** I don't have to do this manually.
#### Acceptance criteria
##### General
* There are only two scheduling modes.
* **Manual**: The user can freely set the start and finish dates, but relations are ignored.
* **Automatic:** **Start as soon as possible**: Automatically sets the start date based on a predecessor. predecessor, project/stage start date or children. The user can only set duration.
* This mode is also used for parents, where **Manual**: The user can freely set the duration field is also inactive.
start and finish dates, but relations are ignored.
* Any time a user wants to manually choose dates for a work package, they select manual scheduling.
* By default, all new work packages will be manually scheduled.
* A new manually-scheduled work package will either have no dates, or take the current date (depending on existing settings).
* Every newly created work package will have no predecessor; they have to be added later.
* If it's a new child work package, it will continue behaving as it does today and by default take the parent's start date.
* For automatic scheduling, as soon as possible, a predecessor is required. If there are no predecessors:
* the top banner will show an error informing the user that a predecessor is required
* all fields will be disabled (non-working days, save action..)
* we will display a blankslate with a primary action to add a predecessor (permissions allowing)
* If a work package was previously manually scheduled, but is then added as a follower. Or if a predecessor is added to a manually scheduled work package: follower:
* We will give Depending on the situation (if there is a gap or a _negative_ gap, there might be other cases too, TBD), we should ask the user a confirmation dialog with two options (see mockups for text): what they would like to do. Options generally include:
* Maintain manual scheduling reschedule to follow immediately after the predecessor
* Switch to automatic
add the relation but keep the current dates by add lag.
* The behaviour of what mode a parent takes is described in a separate feature:
* ##58418
**Connection to stages and gates**
* It might take some time to develop project start date and also the association for work packages to stages. This work package will be independent of that feature, described separately: ##58421
##### Gantt view
* You can freely move manually scheduled work packages.
* Parents will continue \[open\]\[cbl\] Given a parent is in "start asap" mode, and has two children: one in "start asap" mode and one in "manual" mode, and they all have the same start date. And given this parent has a predecessor immediately before it (in manual mode).
When the predecessor is moved to behave as the future
Then what should happen?
the problem: the first child being in asap mode, it does today, except they will now be in Automatic mode.
* They "cover" pushed to the date ranges of past, but the two children second child is manual so it won't move, and children can have an indirect link to relationships the parent will keep the start date of its child in manual mode. But that's inconsistent: the parents.
* They will be non-editable.
* They parent is in "start asap" mode but the predecessor did not push it.
How can be switched to automatic mode. we handle it?
* If you try to move an automatically scheduled successor with lag, ask if user wants to (see mockups for text): to:
* Change lag (reduce or extend)
* Keep relation and switch to manual
* Delete relation and switch to manual
* For work packages without any predecessors, it will if there is no project start date or stage start date (or if the feature has not been implemented yet), this option should be possible to select Automatic mode. greyed out.
* Clicking on "Automatic" will show a blankslate with no action spossibnle. \[open\] The reference to what option should be greyed out is not clear.
* If the dates of a predecessor of an \[open\] What about automatically scheduled work pacakge are removed, the successor will go into manual mode. But we need to ask the user for confirmation:
* "This work package has at least one automatically scheduled successor. Removing the dates here will switch the successor to manual packages that don't have a predecessor. When moving them, should their scheduling mode change to preserve its dates."
* If all predecessors of an automatically scheduled work package are deleted:
* The "sucessor" goes into manual mode. We will ask for user confirmation:
* "This work package has "Manual" or should moving them not be possible at least one automatically scheduled successor. Deleting this work package will switch the successor to manual scheduling to preserve its dates."
* The relation is deleted
<br>
all?
##### **Migration from an earlier version**
* Dates will **NOT** change automatically. All existing dates are preserved.
* For work packages with no predecessors (or with no relations at all) but with dates set, they will be switched to manual scheduling.
* Work packages without \[open\]\[cbl\] and for those without dates set, will also they be switched to manual scheduling. scheduling as well?
* \[open\]\[cbl\] for parents having their dates defined automatically set by children, they're neither in manual or start asap mode. Do we set them to start asap anyway? Is there any better alternative?
* When relations exist,
* If there was a gap in a predecessor/successor relationship, the successor will be set to “Automatic" “Start as soon as possible” with a lag set for the relation with the closest predecessor (the one that finishes latest).
* In a multi-relationship situation, earlier predecessors that do not affect the date of the successor do not have lag added.
* If \[open\]\[cbl\] if the relation exists but there are no dates, they will be switched should the follower switch to manual scheduling mode. "start asap" anyway? (I expect that yes)
* Manually scheduled work packages remain so.
##### **Date picker**
* The date picker will be Primerised.
* There is now an _UnderlineNav_ bar at the top:
* With three options:
* Dates
* Predecessors
* Successors
* Children
* There is a new segmented control with label "Scheduling mode"
* There is a help icon next to the label. On hover, it displays a tooltip with this text: "‘Manual’ "Manual lets you pick fixed dates freely but ignores all predecessors. ‘Automatic’ As soon as possible automatically selects the earliest possible start date for this work package, which cannot be modified."
* Options: "Manual" and "Automatic" "Start as soon as possible"
* The "Working days only" toggle becomes a checkbox aligned to the far right edge of the same line as the segmented control.
* In **Manual** mode:
* The dates are freely selectable, without restrictions.
* Relations don't affect the start and finish dates.
* A manually scheduled work package can push and pull successors that are automatically successors.
* \[open\]\[cbl\] that's only the predecessors being in start asap mode, right? Said it another way, it can't push manually scheduled
work packages.
* A \[open\]\[cbl\] can a manual work package can start before any of their predecessors predecessors? (I expect that yes)
* A manually scheduled \[open\]\[cbl\] can a manual work package will not push a predecessor to the past when it's moved to the past past? (I expect that no it can't)
* In **Automatic** **Start as soon as possible** mode:
* The _Start date_ and _Finish date_ fields are read-only
* The "Today" links under the date fields are disabled (but not removed so that elements in the date picker don't move when changing modes)
* Duration remains editable
* The mini calendar goes into read-only mode
##### **Date picker: Predecessor, Predecessor and Successor and Children tabs**
* Each of the tabs displays the number of relations of that type with a badge
* In each tab, all relations of that type are displayed in a box list
* The content is the same as in the "Relations" tab of the work package, but without the section header
* In the "Predecessors" tab, when there are multiple predecessors, the one setting the date of the current work package has a label that says "Closest" "Main" next to the date and lag information
* \[open\] Can we come up with a better label?
* \[cbl\] I like the idea that it's the closest predecessor, so why not "Closest"?
* \[open\]\[cbl\] When two predecessors or more have the same end date, do we show "Main" for all of them, or for only one? If only one, how is it choosen? (must be deterministic)
##### **Date picker banners:**
**Manual scheduling:**
* Colour: Warning orange
* Action: Show relations
* Case 1: Relations exist but no predecessors.
* **Manually scheduled. Dates not affected by relations.**
<br>
Click on “Show relations” for Gantt overview
* Case 2: There are predecessors but a gap of over two days with the finish date of the latest predecessor.
* **Manually scheduled. Dates not affected by relations.**
<br>
There is a gap between this and all predecessors.
* Case 3: There are predecessors and the current work package overlaps with at least one of them.
* **Manually scheduled. Dates not affected by relations.**
Overlaps with at least one predecessor.
* Case 4: Work package has children.
* **Manually scheduled. Dates not affected by relations.**
This has child work package but their start dates are ignored.
**Automatic:** **As soon as possible:**
* Colour: Info blue
* Action: Show relations
* Case 1: There is a predecessor. X
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 4: The work package 2: X
* **The start date is a parent. set by the project start date.**
You can modify this in your project timeline.
* Case 3: X
* **The dates are start date is the stage start date.**
You can modify this in your project timeline.
* Case 4: X
* **The start date is determined by child work packages.**
Click on “Show relations” for Gantt overview.
* If a work package is both a parent and has predecessors, this "parent" message will be displayed.
####
#### Out of scope
* Other scheduling modes and constraints such as "Must start on" or "Start not later than", "Start no earlier than".
* Editable lag in relations tab. relations.
* This will have been addressed by the time we work on this feature: ###22360
#### Visuals
_**Note:** Please check_ [_Figma_](https://www.figma.com/design/HrWVktq0SsGI2dqqIKQ11M/Scheduling---Lag-and-Modes?node-id=175-3641) _for the most recent mockups._
**Manual scheduling (but predecessors overlap):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226779/content"> style="width:537px;" src="/api/v3/attachments/200816/content">
**As soon as possible (start date set by predecessors):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226780/content"> style="width:537px;" src="/api/v3/attachments/200817/content">
**Date picker Predecessors tab:**
<img **<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226781/content"> style="width:538px;" src="/api/v3/attachments/200818/content">**
**Options when trying to move an automatically scheduled work package in Gantt view:** the Gantt:**
<img **<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226787/content">
**Options when adding a predecessor to a manually scheduled work package in Gantt view:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226792/content"> style="width:539px;" src="/api/v3/attachments/200819/content">**
**I want to** automatically move a set of work packages to the earliest date possible
**So that** I don't have to do this manually.
#### Acceptance criteria
##### General
* There are only two scheduling modes.
* **Manual**: The user can freely set the start and finish dates, but relations are ignored.
* **Automatic:**
* By default, all new work packages will be manually scheduled.
* A new manually-scheduled work package will either have no dates, or take the current date (depending on existing settings).
* Every newly created work package will have no predecessor; they have to be added later.
* If it's a new child work package, it will continue behaving as it does today and by default take the parent's start date.
* For automatic scheduling,
* the top banner will show an error informing the user that a predecessor is required
* all fields will be disabled (non-working days, save action..)
* we will display a blankslate with a primary action to add a predecessor (permissions allowing)
* If a work package was previously manually scheduled, but is then added as a follower. Or if a predecessor is added to a manually scheduled work package:
* We will give
* Maintain manual scheduling
* Switch to automatic
* The behaviour of what mode a parent takes is described in a separate feature:
* ##58418
* It might take some time to develop project start date and also the association for work packages to stages. This work package will be independent of that feature, described separately: ##58421
##### Gantt view
* You can freely move manually scheduled work packages.
When the predecessor is moved
Then what should happen?
the problem: the first child being in asap mode,
* They "cover"
* They will be non-editable.
* They
How
* If you try to move an automatically scheduled successor with lag, ask if user wants to (see mockups for text):
* Change lag (reduce or extend)
* Keep relation and switch to manual
* Delete relation and switch to manual
* For work packages without any predecessors, it will
* Clicking on "Automatic" will show a blankslate with no action spossibnle.
* If the dates of a predecessor of an
* "This work package has at least one automatically scheduled successor. Removing the dates here will switch the successor to manual
* If all predecessors of an automatically scheduled work package are deleted:
* The "sucessor" goes into manual mode. We will ask for user confirmation:
* "This work package has
* The relation is deleted
<br>
* Dates will **NOT** change automatically. All existing dates are preserved.
* For work packages with no predecessors (or with no relations at all) but with dates set, they will be switched to manual scheduling.
* Work packages without
* \[open\]\[cbl\] for parents having their dates defined automatically set by children, they're neither in manual or start asap mode. Do we set them to start asap anyway? Is there any better alternative?
* When relations exist,
* If there was a gap in a predecessor/successor relationship, the successor will be set to “Automatic"
* In a multi-relationship situation, earlier predecessors that do not affect the date of the successor do not have lag added.
* If
* Manually scheduled work packages remain so.
##### **Date picker**
* The date picker will be Primerised.
* There is now an _UnderlineNav_ bar at the top:
* With three options:
* Dates
* Predecessors
* Successors
* Children
* There is a new segmented control with label "Scheduling mode"
* There is a help icon next to the label. On hover, it displays a tooltip with this text: "‘Manual’
* Options: "Manual" and "Automatic"
* The "Working days only" toggle becomes a checkbox aligned to the far right edge of the same line as the segmented control.
* In **Manual** mode:
* The dates are freely selectable, without restrictions.
* Relations don't affect the start and finish dates.
* A manually scheduled work package can push and pull successors that are automatically
* \[open\]\[cbl\] that's only the predecessors being in start asap mode, right? Said it another way, it can't push manually
* A manually scheduled
* In **Automatic**
* The _Start date_ and _Finish date_ fields are read-only
* The "Today" links under the date fields are disabled (but not removed so that elements in the date picker don't move when changing modes)
* Duration remains editable
* The mini calendar goes into read-only mode
##### **Date picker: Predecessor,
* Each of the tabs displays the number of relations of that type with a badge
* In each tab, all relations of that type are displayed in a box list
* The content is the same as in the "Relations" tab of the work package, but without the section header
* In the "Predecessors" tab, when there are multiple predecessors, the one setting the date of the current work package has a label that says "Closest"
*
* \[cbl\] I like the idea that it's the closest predecessor, so why not "Closest"?
*
##### **Date picker banners:**
**Manual scheduling:**
* Colour: Warning orange
* Action: Show relations
* Case 1: Relations exist but no predecessors.
* **Manually scheduled. Dates not affected by relations.**
* Case 2: There are predecessors but a gap of over two days with the finish date of the latest predecessor.
* **Manually scheduled. Dates not affected by relations.**
* Case 3: There are predecessors and the current work package overlaps with at least one of them.
* **Manually scheduled. Dates not affected by relations.**
Overlaps with at least one predecessor.
* Case 4: Work package has children.
* **Manually scheduled. Dates not affected by relations.**
This has child work package but their start dates are ignored.
**Automatic:**
* Colour: Info blue
* Action: Show relations
* Case 1: There is a predecessor.
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 4: The work package
* **The start date
You can modify this in your project timeline.
* Case 3: X
* **The dates are
You can modify this in your project timeline.
* Case 4: X
* **The start date is
Click on “Show relations” for Gantt overview.
* If a work package is both a parent and has predecessors, this "parent" message will be displayed.
####
#### Out of scope
* Other scheduling modes and constraints such as "Must start on" or "Start not later than", "Start no earlier than".
* Editable lag in relations tab.
* This will have been addressed by the time we work on this feature: ###22360
#### Visuals
_**Note:** Please check_ [_Figma_](https://www.figma.com/design/HrWVktq0SsGI2dqqIKQ11M/Scheduling---Lag-and-Modes?node-id=175-3641) _for the most recent mockups._
**Manual scheduling (but predecessors overlap):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226779/content">
**As soon as possible (start date set by predecessors):**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226780/content">
**Date picker Predecessors tab:**
<img
**Options when trying to move an automatically scheduled work package in Gantt view:**
<img
**Options when adding a predecessor to a manually scheduled work package in Gantt view:**
<img class="image_resized op-uc-image op-uc-image_inline" style="width:540px;" src="/api/v3/attachments/226792/content">