About Task Dependencies

Task dependencies can be a tricky thing. However, with AceProject, you are on the path to simple task dependency management. Read on to learn all about AceProject's task dependency system.

1. What are Task Dependencies?

In most projects, certain tasks cannot begin unless another is completed. This can be difficult to manage when the project is complex and contains a high number of tasks that depend on the successful completion of others. These complex projects demand structure and AceProject has the perfect solution.

This is where task dependencies come in. Task dependencies let you decide when a task can be started. For example, testing on a software bundle can only start after building the application file is completed. With AceProject, you can specify that a certain task can only start after one or several other tasks are completed.

Moreover, you can set time intervals (lag time) between dependent tasks, to accommodate for required delays. For example, in a construction project, you may need to let the foundations set before building the walls. With AceProject, you can set this lag time (in hours) so that the second task can only start a set number of hours after which its predecessor is completed.

The interesting feature of task dependencies in AceProject is that dates are automatically adjusted. This means that if a task is completed 2 day earlier than planned, its successor task will be set to start earlier as well!

2. What you Need to Know About Task Dependencies in AceProject

Important things about dependencies:

  • You cannot create circular dependencies. This means that a task cannot have the same task as a predecessor AND a successor (Task A-->Task B-->Task A).

Important things about lag time:

  • What is a lag time? Click Here.
  • Lag time cannot be set to a negative value.
  • Lag time is expressed in day hours and NOT work hours. For example, 24 hours in lag time will last from Monday 8 AM to Tuesday 8 AM.
  • Changing lag time does not affect task dates.

Important things about tasks:

  • All changes in a task's dependencies are logged in the task's history trail, if it is enabled.
    • Adding a predecessor creates an entry in the history trail for both the predecessor and the successor tasks.
    • Date changes with a cascading effect (successors and their successors...) will create an entry in the history trail of all tasks affected.
  • The task's last update date is never changed when a task dependency is created or deleted.
  • A task with dependencies cannot be deleted. You must first sever all its dependencies.
  • When a task is moved from one project to another, all its dependencies are severed.
  • When a project is copied as a template and tasks are included in the copy, all task dependencies are retained.

Important things about task statuses

  • You cannot use task dependencies if you don't have at least one of each 3 task statuses (waiting, in progress, completed).
  • If you are using task dependencies, AceProject will not let you delete the last task status of any type. This means you must have at least one Waiting status, one In Progress status and one Completed status.

3. Task Dependency Types

There are many ways to link tasks together in a project. These are task dependency types. The main task dependency types found are: Finish-to-Start, Start-to-Finish, Finish-to-Finish, and Start-to-Start. In the current version, AceProject supports Finish-to-Start task dependencies. We chose this type because it is the most used and useful task dependency type. Other task dependency types will be supported in subsequent AceProject updates.

A Finish-to-Start (FS) dependency type means that one or several tasks must be completed before a task can begin. In AceProject, this means that a task with an FS dependency type will not be allowed to start unless its predecessor task's status is set to "completed."

4. Lag Time

Lag time is the delay between the end of a task and the beginning of its successor. Lag time is expressed in day hours and NOT work hours. For example, 24 hours in lag time will last from Monday 8 AM to Tuesday 8 AM.

For example:

  • You have a Finish-to-Start dependency between task A and task B, meaning that task A must be finished before task B can start.
  • You set a 24-hour lag time between task A and task B
  • This means that task B's can only start 24 hours after task A's status is set to "completed."

5. Predecessors & Successors

When dealing with task dependencies, there are two parts in the relationship: predecessor tasks and successor tasks:

  • Predecessors are tasks that must be completed before the current task may be started.
  • Successors are tasks that can only be started after the current task is completed.

6. Changing Task Dates

To ease readability, we will use a convention for this section: Task A is the predecessor; Task B is the successor.

  • When creating a dependency between two tasks, both must have a start date and an end date.
  • Task B's start date must be the same day or later than task A's start date. If there is a lag time between both tasks, task B's start date must also respect that. For example, if the dependency includes 24 hours of lag time, task B must start at least 24 hours later than task A.
  • Changes to task B's dates has no effect on task A.
  • If task B's end date is "pushed" beyond the project's end date, the project's end date will be adjusted accordingly.
  • Important things to know when changing task A's start or end date:
    • The time interval between task B's start and end dates (in working days) is not affected by date changes on task A. Task B's dates will be moved earlier or later, but the time period in between will remain the same.
      • You can choose to include or exclude weekends when adjusting task dates. This option is set from the project configuration window.
    • Changing task A's start date will not affect task B's dates, as long as task B's start date is later than task A's start date. If task A's new start date is later than task B's start date, task B's start date will be moved to be on the same day as task A's new start date. If there is lag time configured, it will also affect task B's start date.
    • Changing task A's end date will "pull" or "push" task B's dates accordingly. However, if task B has other predecessors, it will only be "pulled" as early as the latest start date of its predecessor tasks. If there is lag time configured, it will also affect task B's start date.

7. Changing Task Statuses

To ease readability, we will use a convention for this section: Task A is the predecessor; Task B is the successor.

  • Task B cannot be started unless task A's status is set to Completed.
  • If a lag time was entered, AceProject will not let you start task B until the lag time have elapsed.
  • You cannot use task dependencies if you don't have at least one of each 3 task statuses (waiting, in progress, completed).
  • If you are using task dependencies, AceProject will not let you delete the last task status of any type. This means you must have at least one Waiting status, one In Progress status and one Completed status.
  • You cannot add a predecessor to a completed task, since a completed task cannot me modified.
  • You can add a completed task as a predecessor to a task. If the successor task is In Progress, it can only be linked to a Completed task as its predecessor.
  • You can only "reopen" a completed task (changing its status from Completed to Waiting or In progress) if all its successors have the Waiting status.

 


Copyright 2001-2006 Websystems, Inc. All Rights Reserved.