Flowsana's Dynamic Duration Workflow
is one of two workflow types that works with
task dependencies, the other being the
Auto-Adjust Workflow.
The Dynamic Duration workflow is
designed for those scenarios where you have a
repeating process that you do over and over,
and you want to create a template where you
enter durations for each task without any
calendar dates.
The Auto-Adjust workflow, by
contrast, works with projects that already
have dates in them, and its operation is
pretty simple: if you move a task, and that
task has dependent tasks, Flowsana will move
the dependents by the same number of days as
you moved the dependency (predecessor)
task.
Below are the details on how the
Dynamic Duration Workflow works. To learn how
to set up a Dynamic Duration template, and
then create the projects that are derived from
that template, see How to Set Up a Dynamic
Duration Workflow.
CUSTOM FIELDS
When you put a project under the control
of a Dynamic Duration workflow, it
attaches three custom fields to the project.
(If any of these fields doesn't exist,
Flowsana creates it.)
Duration: This is a number of
days, weeks, or months which defines how long
the task will take to accomplish. Flowsana
adds this time period to the task's Start Date
and sets the resulting date as the task's Due
Date. (See also Time Units below.)
Lag Time: This is a number of
days, weeks, or months and can be applied to a
dependent task. It defines the amount of time
that Flowsana should allow between the Due
Date or Completion Date of a dependency task
and the Start Date of the dependent task which
contains the lag time. It's also used to
calculate a lag time between a project's start
date and the start date of tasks in that
project (see Project Rules below). You can
specify a negative lag time (i.e. a lag time
preceded by a minus sign), like -4 or -1w, to
indicate that you want the dependent task to
begin prior to the due date of its dependency
task.
Assign To: This is a field in
which you can enter the name of an Asana user
who is responsible for executing a particular
task. You then leave the Assignee field blank
for the task. It's designed to be used for
dependent tasks: such a task is initially not
yet ready to be carried out (because it has
dependency tasks which still need to be done
first), so it does not have an assignee. As
soon as its dependency task is marked
complete, Flowsana assigns the task to the
user whose name is in the Assign To field.
Note that due to an Asana limitation,
this field is a free-text field and in order
to work properly, you will need to be sure to
type in the name of the appropriate user so it
exactly matches the user's name as defined in
Asana.
TIME UNITS
The Duration and Lag Time fields can
be specified in either days, weeks, or months.
To specify a number of days, type the number
of days followed by the letter d . For
weeks, use the letter w . For months,
use the letter m . The default unit is
days, so you can also specify a number of days
by simply entering a number with no subsequent
letter.
For example:
3 d | 3 days |
3d | 3 days |
3 | 3 days |
1 w | 1 week |
4w | 4 weeks |
3 m | 3 months |
1m | 1 month |
GENERAL INSTRUCTIONS FOR USING
DYNAMIC DURATION WORKFLOWS
For projects you want to use with
this workflow type, you should set the
Duration, and optionally the Lag Time field,
for each task in the project. I.e. you are
defining the length of time that it takes to
perform each task.
Then using the Flowsana website, put
that project under Flowsana control and select
Dynamic Duration Workflow. After that,
tasks in the project will adhere to the
following rules.
PROJECT OPERATIONS
Flowsana implements the following
operations at the project level for Dynamic
Duration workflows:
- If you put a project under Flowsana control which doesn't have a start and due date set, then after it's under Flowsana control you set a start and due date, Flowsana will set all top-level (i.e. non-dependent) tasks in the project to have a start date equal to the project's start date. If any of these tasks have a Lag Time set, that will be taken into account when setting the start date.This is great when you want to make a new project from a template. Create and save the template without assigning any start/due dates to tasks or to the project. Then whenever you need a new project based on that template: create a new project from the template; then put that new project under Flowsana control; then assign a start and due date for the project. Flowsana will then set the appropriate dates for that project's tasks.
- If you have a project under Flowsana
control where a start date is set for that
project, and then you modify the project's
start date, Flowsana will adjust the dates
of all top-level (i.e. non-dependent)
tasks in the project. For example,
if you slide the start date of a project
back 3 weeks, Flowsana will slide the
start date of all top-level tasks back 3
weeks.
TASK OPERATIONS
Flowsana implements the following
operations at the task level for Dynamic
Duration workflows:
- Whenever the start date of a task is
changed, its due date will be recalculated
by adding the defined duration to the
task's start date.
- Any time a task's due date changes and it
has dependent tasks, each dependent task
is evaluated and its start date is
adjusted if needed. A dependent task's
start date is set to the due date of the
task it's dependent on, adjusted for any
lag time if one is set. If a dependent
task has multiple dependencies (i.e. is
dependent on multiple tasks), then the
latest due date of all
of its dependencies is used for this
calculation.
- If you change the Duration and/or Lag Time
of a task, its Start and/or Due date will
be adjusted as appropriate, and then any
dependent tasks will be adjusted as per
rule #2 above.
- If you change the Start and/or Due Date of a task, its Duration and/or Lag Time will be adjusted to match your change, and then any dependent tasks will be adjusted per rule #2 above.
- Because when you change either a task's date per #4 above, or its Duration/Lag Time per #3, Flowsana automatically updates the other information to match, you should not change both a task's date AND its Duration/Lag Time. Doing so may confuse Flowsana as to your intent on that task.
- Completing a task, and working with
already-completed tasks, will have
different results depending on how you've
set two options when first creating your
template workflow. See the next section
for details. When a task is marked
complete and it has dependent tasks, the
start date of its dependent tasks is set
to the completion date of the dependency
task that was just marked complete,
adjusted for any lag time if one is
set. If a dependent task has
multiple dependencies (i.e. is dependent
on multiple tasks), then its start date is
only adjusted once all of its
dependencies are marked complete. Also, if
any of these dependent tasks has the name
of an Asana user in its Assign To field,
the task will be assigned to that person.
COMPLETED
TASKS
Flowsana handles operations
involving completed tasks differently,
depending on how you set two options: When
completing a task, adjust its
dependents and Keep completed
dependent tasks fixed. You can choose
to enable or disable each of these options
when you first create a workflow for your
template. After that, all new workflow-enabled
projects that you create from that template
will then have the options defined in the way
you set them for that template.
Here's what those options
mean:
- When completing a task, adjust it and its dependents: If this option is enabled (checked), then when a task is marked complete, two things happen: (1) the due date of the task is changed to be equal to the completed (i.e. today's) date; and (2) if the task you marked complete has dependent tasks, the start date of its dependent tasks is set to the completion date of the task that you just marked complete - that is, today's date - adjusted for any lag time if one is set .The purpose of this option is to support scenarios like the following: say Task A is due on a particular Thursday, and it has a dependent Task B starting that day. But now let's say Task A gets done 3 days early, on Monday instead of Thursday. In this scenario, the principle is that on Monday when Task A is completed, you say, "Oh, we were planning to start Task B on Thursday but since Task A is done already, there's no reason we can't start Task B today on Monday; there's no need to wait till Thursday since its predecessor is complete." If this scenario matches how you operate, then enable (check) this option. If, however, you do not want any tasks to be adjusted when a task is marked complete, then disable (uncheck) this option. Again, note that as stated in (1) above, this option will change the due date of the task being marked complete (Task A in the example) to the current (i.e. completed) date of that task.
- Keep completed dependent tasks fixed: If this option is enabled (checked), then once a task is marked complete, if it is dependent on another task before it, it will not be adjusted even if the predecessor tasks before it are changed. similarly, any tasks beneath the completed task that are dependent on it will not be adjusted.The purpose of this option is to support the scenario where, once a task is completed, you do not want it shifting in time regardless of what happens with the timeline of the project and with other tasks.
Note that these two options are not
an either/or where you select one or the
other; rather, they're independent of each
other. The first one has to do with what
Flowsana does when you first mark a task
complete; the second has to do with what
Flowsana does with completed tasks after they
have already been marked complete. In general,
if you enable When completing a task,
adjust its dependents, you will
probably also
want to enable Keep completed dependent
tasks
fixed. But it's up to you, depending
on the
behavior that you want.
FLOWSANA RULES
If you have any Flowsana Rules
defined for a Dynamic Duration template, when
you create a new project from that template,
Flowsana will duplicate all of the template's
Rules into the new project.
*Note: It is important to remember
that in order for Dynamic Duration
Workflows to
work, you need to
set up dependencies between your
tasks. Otherwise,
Flowsana will not know what tasks to
adjust.*