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.
* **Start as soon as possible**: Automatically sets the start date based on a predecessor, project/stage start date or children. The user can only set duration.
* **Manual**: The user can freely set the 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 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)
**Open questions**
* \[open\] It might take some time to develop project start date and also the association for work packages to stages.
* In this feature, "as soon as possible" will not be linked to project or stage start date. This will be handled in a separate feature (ADD LINK).
* \[open\] Every newly created work package will have no predecessor. And there are a lot of ways in which work packages are created, oftentimes without the dates being visible. Using this behaviour, newly created work packages will receive dates without the user potentially having seen them. Additionally, dates are not always used in a project by the users. In this case it would be better to not have dates set at all.
* Since manual scheduling is default, users will no be able to create work packages without it automatically getting dates.
* \[open\] There is currently a setting to use the current date as the start date. That setting would have to be removed.
* Not really. We can still have that setting, and set the dates automatically but in manual mode (with the current date).
* \[open\] Using "manual" as the default for newly created work packages and not setting dates automatically allows the user to not have to think about dates from the beginning. Based on my, <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention> , usage that is oftentimes desired (e.g. when creating a bug or feature here on the platform, it is not right away clear when they will be fixed/implemented). It would also work more smoothly on the Gantt chart. If a work package was previously manually scheduled, but is created there, after the project has already run for some time, its start time would very likely be outside of the visible area. Lastly, that mode is easier to understand for most users. When they first enter the date picker, they would have to understand that they have to change the mode first before being allowed to insert dates.
* Agreed. Manual will be default.
* Whether or not a work package will get creation date as then added as start date will be (as today) a follower: setting. Or if it's a child work package to a parent that already has start dates.
* \[open\] Should adding a predecessor/successor change the scheduling mode of the now following work package? Should the user be prompted on what to do?
* Yes. Depending on the situation (if there is a gap or a a _negative_ gap, there might be other cases too, TBD), others too), we should ask the user what they would like to do. Options generally include:
* reschedule to follow immediately include following right after the prdecessor
* add th relation but (lag 0) or keep the current dates by and add lag.
This needs to be further specified.
* The behaviour of what mode a \[open\] What happens to parent takes is described work packages? Today, they inherit the dates from the children, but if they themslves are followers to another work package, should they not also be rescheduled automatically in a separate feature: ASAP mode like all other work packges.
* ##58418 Will be address in a separate open point.
**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.
* If you try to move an automatically scheduled successor with lag, ask if user wants to:
* Change lag (reduce or extend)
* Keep relation and switch to manual
* Delete relation and switch to manual
* For work packages without any predecessors, if there is no project start date or stage start date (or if the feature has not been implemented yet), this option should be greyed out.
* \[open\] The reference to what option should be greyed out is not clear.
* \[open\] What about automatically scheduled work packages that don't have a predecessor. When moving them, should their scheduling mode change to "Manual" or should moving them not be possible at all?
##### **Migration from an earlier version**
* No dates will 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.
* When relations exist,
* If there was a gap in a predecessor/successor relationship, the successor will be set to “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.
* 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
* 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 lets you pick fixed dates freely but ignores all predecessors. As soon as possible automatically selects the earliest possible start date for this work package, which cannot be modified."
* Options: "Manual" and "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.
* In **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 (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 and Successor 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 "Main" next to the date and lag information
* \[open\] Can we come up with a better label?
##### **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.
**As soon as possible:**
* Colour: Info blue
* Action: Show relations
* Case 1: X
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 2: X
* **The start date is set by the project start date.**
You can modify this in your project timeline.
* Case 3: X
* **The 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.
####
#### Out of scope
* Other scheduling modes such as "Must start on" or "Start not later than", "Start no ealier than".
* Editable lag in relations.
* This will have been addresssed 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: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:537px;" src="/api/v3/attachments/200817/content">
**Date picker Predecessors tab:**
**<img class="image_resized op-uc-image op-uc-image_inline" style="width:538px;" src="/api/v3/attachments/200818/content">**
**Options when trying to move an automatically scheduled work package in the Gantt:**
**<img class="image_resized op-uc-image op-uc-image_inline" 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.
* **Start as soon as possible**: Automatically sets the start date based on a predecessor, project/stage start date or children. The user can only set duration.
* **Manual**: The user can freely set the 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.
* 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 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)
**Open questions**
* \[open\] It might take some time to develop project start date and also the association for work packages to stages.
* In this feature, "as soon as possible" will not be linked to project or stage start date. This will be handled in a separate feature (ADD LINK).
*
* Since manual scheduling is default, users will no be able to create work packages without it automatically getting dates.
* \[open\] There is currently a setting to use the current date as the start date. That setting would have to be removed.
* Not really. We can still have that setting, and set the dates automatically but in manual mode (with the current date).
* \[open\] Using "manual" as the default for newly created work packages and not setting dates automatically allows the user to not have to think about dates from the beginning. Based on my, <mention class="mention" data-id="87" data-type="user" data-text="@Jens Ulferts">@Jens Ulferts</mention> , usage that is oftentimes desired (e.g. when creating a bug or feature here on the platform, it is not right away clear when they will be fixed/implemented). It would also work more smoothly on the Gantt chart.
* Agreed. Manual will be default.
* Whether or not a work package will get creation date
* \[open\] Should adding a predecessor/successor change the scheduling mode of the now following work package? Should the user be prompted on what to do?
*
* reschedule to follow immediately
* add th relation but
* ##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.
* If you try to move an automatically scheduled successor with lag, ask if user wants to:
* Change lag (reduce or extend)
* Keep relation and switch to manual
* Delete relation and switch to manual
* For work packages without any predecessors, if there is no project start date or stage start date (or if the feature has not been implemented yet), this option should be greyed out.
* \[open\] The reference to what option should be greyed out is not clear.
* \[open\] What about automatically scheduled work packages that don't have a predecessor. When moving them, should their scheduling mode change to "Manual" or should moving them not be possible at all?
##### **Migration from an earlier version**
* No dates will 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.
* When relations exist,
* If there was a gap in a predecessor/successor relationship, the successor will be set to “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.
* 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
* 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 lets you pick fixed dates freely but ignores all predecessors. As soon as possible automatically selects the earliest possible start date for this work package, which cannot be modified."
* Options: "Manual" and "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.
* In **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
* Duration remains editable
* The mini calendar goes into read-only mode
##### **Date picker: Predecessor and Successor 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 "Main" next to the date and lag information
* \[open\] Can we come up with a better label?
##### **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.
**As soon as possible:**
* Colour: Info blue
* Action: Show relations
* Case 1: X
* **The start date is set by a predecessor.**
Click on “Show relations” for Gantt overview.
* Case 2: X
* **The start date is set by the project start date.**
You can modify this in your project timeline.
* Case 3: X
* **The 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.
####
#### Out of scope
* Other scheduling modes such as "Must start on" or "Start not later than", "Start no ealier than".
* Editable lag in relations.
* This will have been addresssed 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: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:537px;" src="/api/v3/attachments/200817/content">
**Date picker Predecessors tab:**
**<img class="image_resized op-uc-image op-uc-image_inline" style="width:538px;" src="/api/v3/attachments/200818/content">**
**Options when trying to move an automatically scheduled work package in the Gantt:**
**<img class="image_resized op-uc-image op-uc-image_inline" style="width:539px;" src="/api/v3/attachments/200819/content">**