Task Dependency is special relationships dependency between two or more tasks to determine the reason for these tasks to exist. There are three kinds of task dependency as follows:
Casual task dependency identifies logical context of dependent tasks and establishes casual relationships between these tasks. This kind of dependency removes illogical execution of dependent tasks and defines task consecutiveness. For example: it is impossible to make a phone call without having a needed phone number.
Dependency of tasks upon time creates time dependency. Time is regarded as the major constraint that determines the sequence of task execution. Time dependency is often used in planning critical path tasks and scheduling project buffers. Example: a painter needs to paint four rooms in 3 hours, but usually it takes 1 hour to paint 1 room. The painter has to create a sequence of tasks that ensure reduced duration for painting 1 room.
Preferential or discretionary dependency identifies a preferred way and sequence of doing certain interrelated tasks. Preferential dependency makes it possible to choose between several alternatives and preferences as the key criteria for making choice. Example: a designer prefers to draw website header before drawing main menu, although the designer could start with the second task.