After the project has been broken down into appropriate level tasks in the work plan, any dependencies between various tasks must be determined and defined. As part of this process it is important to examine whether any task is dependent on any other task, and if so, how.
People often go astray here and create unnecessary and strange connections between tasks. There are only two reasons to connect any two tasks in the work plan:
- Natural Law – It is physically impossible or illogical to work on one task before another one is completed. For example, it is not possible to construct the roof of a building until the load-bearing walls are built, or edit a book before it was written.
- Organizational Law – The laws of the organization running the project must be followed. For example, one may not begin development work before the client approves the project specifications document.
It is best to avoid generating too many task connections. Ensure that any defined connection falls into one of the two categories above. If it does not, avoid adding it.
A common mistake is creating a connection between tasks assigned to one resource for the sole purpose of avoiding overloading the resource by demanding he complete several tasks simultaneously. Many are tempted to create such connections and then regret it at the tracking and control stages, when every change in human resources necessitates a re-examination of task connections to determine whether existing connections are real task connections or the result of resource delegation. Overloading a resource is a problem that should be addressed using ‘Resource Leveling’ at the resource allocation stage.
Example: One worker is assigned to paint an apartment. Naturally, he will have to paint a different part of the apartment each day and will not be able to paint several sections at the same time. It might be tempting to create a connection between these various painting tasks because this worker has to approach them in a linear fashion. Doing so, however, would be a mistake. This worker’s tasks will be organized using the Resource Leveling mechanism described later in this chapter and not via task connections. If we create connections between various apartment-painting tasks then later assign another painter to the job, we will have to identify the connections that originated only from resource constraints and remove them.
There are four types of dependencies between tasks:
- ‘Finish to Start’ connection (the most common one): one task cannot begin before the first task is finished;
- ‘Start to Start’ connection: one task cannot begin before the first task begins;
- ‘Finish to Finish’ connection: one task cannot end before the first task ends;
- ‘Start to Finish’ connection: one task cannot end before the second task begins.
Every connection can be defined as is or with a positive or negative delay. For example, take the case where one task can only begin two days after another task begins. In order to describe such a scenario, we must add a ‘lag’ (delay) to the connection. A positive or negative lag can be added to each connection, constituting an added descriptor of the connection between the tasks, as follows: