Questions, this post answers:
- What are dependencies in MS Project?
- How many types of dependencies are there in MS Project?
- How to decide which dependency is appropriate between the two tasks?
- How to establish dependencies or relationship between the tasks?
- How to change dependency between two tasks?
- What are Lag and Lead?
- Why do Lag and Lead are required?
- How to specify lag or lead on a dependency?
- How to change lag or lead?
Task Dependency/Relationship in Microsoft Project
Most of the tasks in a project are dependent on the some other tasks. Majority of the time, one task produce is used by another task and therefore task using the produce cannot be started until first task is completed. For example, Development uses Design document and therefore Development can only be started when Design is completed.
Similarly two tasks can be executed in parallel however second task cannot be started until first task is started or second task cannot be finished until first task is finished. For example, you have production of parts and testing of parts. Production will produce the parts that will be tested by testing. In this case production is not required to produce all the parts to start the testing. As parts are produced, they can be tested in parallel. However testing can be started only after first part is produced or the testing can be finished only when production of all part is finished. As you see production and testing can be done in parallel but testing cannot be started until production is started or testing cannot be finished until production is finished as the case may be.
These situations require us to establish a dependency between two such task to schedule so that they can be executed in a proper sequence and appropriate resources can be arranged at appropriate time. Therefore assigning dependencies (or relationship) between the tasks is of extreme importance for proper scheduling. Improper dependency assessment in MS Project will lead to incorrect schedule which in turn create chaos during execution.
Types of Dependencies in MS Project
In Project Management, there are four types of dependencies to set proper sequencing among the tasks in any schedule. MS Project has a provision to set all four types of dependencies. These fours dependencies are as follows:
1. Finish to Start (FS)
Finish to start dependency is created when two tasks are in sequence. That means one task depends upon finish of other task. Like in a relay race, until baton is not handed over by first runner to second runner, second runner cannot start. Similarly in any building construction, pillars have to be erected first to construct the roof. The second task can only be started when first task is finished. If start of task B depends upon finish of task A, It is represented as A à B, where A is called predecessor and B is called successor. Please refer the figure above.
In MS Project FS relationship can be established using Link command. First select the predecessor, press the control key and hold it, then select the successor and then finally click on Link commond available on Task Tab under Schedule Group. Please refer figure above. 4.1 Testing is predecessor and 4.2 Inspection is successor.
2. Start to Start (SS)
Start to Start (SS) dependency is established when two task are to be executed in parallel but one task cannot start until other task is started. Refer the figure below. It is a sample schedule of a construction projects. MEP need not to wait for Civil work to finish. They can be done in parallel however MEP cannot start until some amount of Civil work is completed. So we established a SS relationship with a delay (to wait until minimum required Civil work is completed). Here delay is represented by Lag (See detailed explanation of Lag below). Lag introduce a delay on the dependency.
A simple method to achieve SS in MS Project is as follows:
Select predecessor, press the control key and hold it, then select the successor and establish a FS relationship as described above. Double click anywhere on the link line you have just established. A dialog box “Task Dependency” will open up. In “Type” drop down, select “Start-to-Star (SS)”. If you want to introduce a delay, like we have added 10 days of delay in our example, enter delay time in “Lag” field. Press “OK”. You have established a SS relationship with a Lag.
3. Finish to Finish (FF)
Finish to Finish (FF) dependency is established when two task are to be executed in parallel but one task cannot finish until other task is finished. Refer the figure below. It is the same schedule of a construction projects. Same effect we can be bought using FF relationship. MEP need not to wait for Civil work to finish. They can be done in parallel. However you see that MEP cannot finish until Civil work is completed for the same reason it cannot be started until Civil work starts. So we will established a FF relationship with a lag (to delay the finish of MEP after Civil work is completed). Refer figure below.
Want to learn learn MS Project to plan and track your projects effective?
A simple method to achieve this in MS Project is as follows:
Select predecessor, press the control key and hold it, then select the successor and establish a FS relationship as described above. Double click anywhere on the link line you have just established. A dialog box “Task Dependency” will open up. In “Type” drop down, select “Finish-to-Finish (FF)”. If you want to delay the successor’s start, like we have delayed the MEP finish date by 10 days in our example, enter lag time in “Lag” field as positive number. Press “OK”. You have established a FF relationship with a lag.
4. Start to Finish (SF)
Start to Finish (SF) dependency is not so frequently used. Most of the schedule can be developed with FS relationship. Some places we use SS & FF to appropriately plan the activities so that the schedule is more realistic and executable. Very few places we use SF.
Best example to understanding SF is shift duties. In shift duties, the work cannot be left unattended and therefore 1st shift employee leave the work only when 2nd shift employee has started attending the work. If you observe this scenario, you will find that completion of 1st shift employee’s work is dependent on start of 2nd shift employee’s work. Therefore it is Start to Finish relationship.
In MS Project it can be achieved same as SS or FF above. Please remember the work which is in progress is dependent on the work that will start in future. This is just opposite to FS, FF & SS.
Select predecessor, press the control key and hold it, then select the successor and establish a FS relationship as described above. Double click anywhere on the link line you have just established. A dialog box “Task Dependency” will open up. In “Type” drop down, select “Start-to-Finish (SF)”. You can add lag or lead as you desire.
Lag and Lead
Lag and lead are rider on the dependencies. By using lag and lead, we make our schedule closer to real life situation. In other words, by using Lag & Lead, we can reflect real life situations in the schedule making it more practical and executable.
Let’s understand Lag first through an example. Suppose you prepare a design document and send it for approval. Now approver will take some time to review the document and approve it. During this time, you have no related work. When approver is reviewing, you are waiting and have no active work. You are free to be assigned to other work for these 5 days. If you add an activity for 5 days, you become engaged. Therefore you cannot add an activity for doing nothing. How do we reflect an idle wait in the project? This is the purpose of Lag. Using Lag, we can add idle wait in the schedule. This is necessary otherwise project will finish faster on paper. Now if your approver takes 5 days to approve, your development which is the next activity will start 5 days after submitting the design document. You have 5 days of idle wait time. Therefore you will double click on the link between design document and development and add 5 days of lag in the Task Dependency dialog box. This way development will be pushed for 5 days without any active work.
Similarly we can understand Lead. Lead advances the successor from its start dates determined by the dependency i.e. successor starts even when predecessor is not finished. Predecessor and successor will continue in parallel for some time. Many times a task say B is dependent upon another tasks say A but B needs not to wait until A is completely finished and can start a bit early. There is a risk involved in starting early but it is manageable.
Let’s take an example. Suppose you are preparing a document which will be reviewed by your colleague. Document has many sections and you will take some time to complete it. Let’s say 10 days. Will you ask your colleague to wait for review until you have complete all the sections and finalize the document? Probably yes but mostly you may prefer to get it reviewed when some sections of the document are complete. This will save time. Normally review takes less time. Let’s assume 4 days. If you start the review after document is finished, it will take total 14 days to complete both the tasks. Instead of starting the review after document is finalized, you may advance the start date of review a few days say 2 days. So you double click on link joining document preparation and review and add -2 in lag field for 2 days of lead. In this case total time will be 12 days to complete both the tasks with minimal risk.
I would like to know how was your experience with dealing with dependencies in Microsoft Project? Did you face any problem? Do you have any idea to make it simpler or easier? I look forward for your views, comments and question.