Content
View differences
Updated by Niels Lindenthal almost 2 years ago
**As a** project manager This work package explores the potential challenges with the current approach and seeks to come up with logical and sensible semantics for scheduling.
**I want to** add scheduling constraints ### The Context
**So that** I better control the scheduling in my project. Currently, there are three states involving scheduling:
**Acceptance criteria**
* **default (no scheduling)**
* the user can _choose_ "**manual scheduling**" today for work packages by enabling a check-box
* a work can _be_ **automatically scheduled** (without input from the user)
In 12.2, **by default** (no scheduling), users can pick start/end dates freely, but the date picker there range might sometimes be limited by relations. For example, a work package with a preceeding relationship or a following relationship:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32100/content"></div></figure>
In 12.2, **a manually scheduled** work package simply means that all relations (follows/preceeds, children/parent) are two scheduling constraints:
1. As early as possible (default)
2. Not earlier than
ignored. The user can select any start and finish dates; other work packages will not affect this one:
<figure class="image op-uc-figure"><div op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/113671/content"></div><figcaption class="op-uc-figure--description">Default constraint type: As soon as possible</figcaption></figure> src="/api/v3/attachments/32102/content"></div></figure>
* When moving a automatically scheduled In 12.2, an **automatically scheduled** work package forward the constraint is changed packages are simply work packages whose start and end dates are derived (mostly from `_as early as possible_` to `_not earlier than_`_._ children). The constraint date user cannot select any dates manually without enabling manual scheduling:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32101/content"></div></figure>
Semantically, "automatically scheduled" (zero user agency over dates) and "manually scheduled" (full user agency over dates) are diamentrically opposed. The default scheduling mode, which is set not named, sits in between (some user agency over dates).
Even with duration and non working days, this system can continue to function; the new start date of the moved work package.
picker will simply look a bit different:
<figure class="image op-uc-figure"><div op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/113673/content"></div><figcaption class="op-uc-figure--description">Constraint Type: Start no earlier than</figcaption></figure> src="/api/v3/attachments/32201/content"></div></figure>
### The Challenge
However, in even later versions when we introduce constraint types, the current approach reaches its limit. For backwards planning, we need to be able to schedule based on constrains:
* There is a date picker that allows to select the `Constraint date` for `not earlier than`.
As soon as possible
* When changing As late as possible
This should be possible in something similar to the automatic mode, where the `Constraint type` user can't directly chose dates but has the possibility to as soon as possible chose constrain types so the the `Constraint date` is deleted.
dates that are derived respect these constraints.
One way to organise it would be like this:
* There are two new work package columns:
**default (no scheduling)**
* `Constraint type`
**manual scheduling**
* `Constraint date` **automatically scheduled**
* **by constraint type**
However, for this to work, the user has to _enable_ automatic scheduling by choosing a constraint type, but today, automatic scheduling is not a mode the user can manually select.
### Open Questions to Discuss
1. Is a work package scheduled based on constraints automatically or manually scheduled? Is it in between?
2. What does "manual scheduling" mean in this sense? Unlike previously, when it simply meant "ignore relations", this now also means "ignore relations and ignore constraint types".
3. Should the default state be named, and if so, can it be opposed to automatic scheduling? If so, how do we deal with the "default" mode?
4. And if "automatic" is opposed to "manual", how can we make it possible to _not_ have to select a constraint type? How does one select the default mode that is neither automatic, nor manual?
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32202/content"></div></figure>
Or do we need three scheduling modes, and the constraint types are only offered when "Automatic" is selected?
As an example, **default scheduling does not show constraint types** and behaves like it does today (except now it is named):
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32203/content"></div></figure>
But **automatic scheduling shows constraint types**, with "as early as possible" selected by default:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32204/content"></div></figure>
**I want to** add scheduling constraints
**So that** I better control the scheduling in my project.
**Acceptance criteria**
*
* the user can _choose_ "**manual scheduling**" today for work packages by enabling a check-box
* a work can _be_ **automatically scheduled** (without input from the user)
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32100/content"></div></figure>
In 12.2, **a manually scheduled** work package simply means that all relations (follows/preceeds, children/parent)
1. As early as possible (default)
2. Not earlier than
* When moving a automatically scheduled
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32101/content"></div></figure>
Semantically, "automatically scheduled" (zero user agency over dates) and "manually scheduled" (full user agency over dates) are diamentrically opposed. The default scheduling mode, which
Even with duration and non working days, this system can continue
However, in even later versions when we introduce constraint types, the current approach reaches its limit. For backwards planning, we need to be able to schedule based on constrains:
This should be possible in something similar to
One way to organise it would be like this:
* **by constraint type**
However, for this to work, the user has to _enable_ automatic scheduling by choosing a constraint type, but today, automatic scheduling is not a mode the user can manually select.
### Open Questions to Discuss
1. Is a work package scheduled based on constraints automatically or manually scheduled? Is it in between?
2. What does "manual scheduling" mean in this sense? Unlike previously, when it simply meant "ignore relations", this now also means "ignore relations and ignore constraint types".
3. Should the default state be named, and if so, can it be opposed to automatic scheduling? If so, how do we deal with the "default" mode?
4. And if "automatic" is opposed to "manual", how can we make it possible to _not_ have to select a constraint type? How does one select the default mode that is neither automatic, nor manual?
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32202/content"></div></figure>
Or do we need three scheduling modes, and the constraint types are only offered when "Automatic" is selected?
As an example, **default scheduling does not show constraint types** and behaves like it does today (except now it is named):
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32203/content"></div></figure>
But **automatic scheduling shows constraint types**, with "as early as possible" selected by default:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32204/content"></div></figure>