A 🗺️ Tech Tasks can have 5 statuses:
0 - Pending Workforce: The task is available to work right now. Stockly can assign someone to work on it or already has and is waiting for them to work on it.
1 - Started: Someone has started to do some work on it.
2 - On Hold: The task is blocked by an event not tracked through ‣. (See Reminder)
<aside> ✋ It’s important not to update the Internal Status to 2 - On Hold when the task is blocked by prerequisites.
</aside>
3 - Done: The task is completed
-1 - Dropped: Stockly decided not to pursue this task anymore.
<aside> 🗣️ Statuses 0 - Pending Workforce, 1 - Started, and 2 - On Hold are said to be Open, whereas 3 - Done and -1 - Dropped are said to be Closed.
A task is said to be Open when its Status is open and Closed when its Status is closed.
</aside>
The Internal Status is a required input to be written in Status Intl
.
The External Status is computed by taking the minimum Status of its prerequisites following this order:
<aside>
🔝 Started < Pending Workforce < On Hold < Done < Dropped
⇒ In this situation “<
” means “takes priority over
”
</aside>
The Status of a task is computed from its Internal and External Status according to the following match:
<aside> 🤯 It’s basically the minimum of the External and Internal Status except in a few cases:
External Status $(E)$ | Internal Status$(I)$ | Status Output $f(E{;}\,I)$ |
---|---|---|
1 - Started | 1 - Started | 1 - Started |
1 - Started | 0 - Pending Workforce | 1 - Started |
1 - Started | 2 - On Hold | 1 - Started |
1 - Started | 3 - Done | 1 - Started |
1 - Started | -1 - Dropped | ⚠ -1 - Dropped ⚠ |
0 - Pending Workforce | 1 - Started | 1 - Started |
0 - Pending Workforce | 0 - Pending Workforce | 0 - Pending Workforce |
0 - Pending Workforce | 2 - On Hold | 0 - Pending Workforce |
0 - Pending Workforce | 3 - Done | 0 - Pending Workforce |
0 - Pending Workforce | -1 - Dropped | ⚠ -1 - Dropped ⚠ |
2 - On Hold | 1 - Started | ⚠️ 2 - On Hold ⚠️ |
2 - On Hold | 0 - Pending Workforce | ⚠️ 2 - On Hold ⚠️ |
2 - On Hold | 2 - On Hold | 2 - On Hold |
2 - On Hold | 3 - Done | 2 - On Hold |
2 - On Hold | -1 - Dropped | ⚠ -1 - Dropped ⚠ |
3 - Done | 1 - Started | 1 - Started |
3 - Done | 0 - Pending Workforce | 0 - Pending Workforce |
3 - Done | 2 - On Hold | 2 - On Hold |
3 - Done | 3 - Done | 3 - Done |
3 - Done | -1 - Dropped | ⚠ -1 - Dropped ⚠ |
-1 - Dropped | 1 - Started | 1 - Started |
-1 - Dropped | 0 - Pending Workforce | 0 - Pending Workforce |
-1 - Dropped | 2 - On Hold | 2 - On Hold |
-1 - Dropped | 3 - Done | 3 - Done |
-1 - Dropped | -1 - Dropped | -1 - Dropped |
graph LR
classDef Value stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 4
classDef NothingAround stroke-width:0px
IN["Internal Status input" ]:::empty --> Status_Intl
Status_Intl["🧪Status Intl"]-->status_intl_as_int["🧪status_intl_as_int"]
DPD["Prerequisites input"]:::empty --> nb_prerequisites["🧪nb_prerequisites"]
status_out_fc["🧪status_out from Prerequisites"]:::empty -->status_ext_fc["🧪status_ext_fc"]
status_out_fc-->status_ext_fc
status_out_fc-->status_ext_fc
status_intl_as_int -->IV
status_ext_fc-->EV
nb_prerequisites-->EV
IV[Internal value]:::Value---F
EV[External value]:::Value---F
F["...⚙️..."]:::NothingAround
F --> status_out["🧪status_out"]
status_out --> O["
🔵/🔴/🟠/🟣/⚪"]
classDef empty width:0px,height:0px