The definitive resource to learn all what I present in this post is the PMBOK: "the guide to project management body of knowledge". It's a big book and it's quite unlikely you can read and understand it in time for your interview. But there is good news! I will give you the main concepts you need to know, so, that you can answer the most basic project management / program management interview questions after only a few minutes of work!
Project planning is part of Project Management
If you want to be a project manager, the minimum is to know what project management is. Do you have a good definition in mind? No? Well, you should have one!
The PMBOK gives a complicated definition of project management. Based on the experience I have gathered managing projects during almost 10 years, I prefer this one (my own ;)):
"Project management is the process of initiating, planning, monitoring, executing and closing tasks to achieve specific goals under given resource, time, and quality constraints."
What's a critical path / a critical task? What's a PERT diagram? What's the slack / float time of a task?The critical path of a project is the sequence of tasks that defines the completion date. If one of the tasks on the critical path is delayed by 1 day, the project will be delayed by 1 day (except if other tasks of the critical path finish earlier than planned and compensate this delay).
A task is not critical if it can be delayed without impacting the project completion date. We say that it has some "slack" or "float". The float of the task is the amount of time it can be delayed without affecting the project completion date (total float) or the start another task (free float).
Let's analyze the example in the figure below. I chose it because it is a common representation of project activities, named PERT chart. PERT stands for "Program Evaluation and Review Technique". It's a way to identify the critical path.
The milestones of the project are represented as nodes (10-50). The tasks (A-E) are the arrows between the nodes and they are labeled with the expected time required to complete them. You can see that the task E starts at milestone 30 and requires 2 months. To complete (milestone 50), the project requires tasks F, E, and C to complete. As you can see we need 4+3= 7 months to achieve tasks B and C, and also 7 months to achieve A, D, and F. But we need only 5 months to complete A and E. Consequently , if I delay any task among (B,C, A,D, F), the project will be delayed. They are the critical paths! However, I can delay E by two months without consequence for the project: the slack time for E is 2 months.
|A network diagram used for project planning. Inspired by a chart at netmba.com. Created by Jeremy Kemp. 2005/01/11 (Photo credit: Wikipedia)|
- The task's Early Start (ES) and Late Start (LS) date. The difference between the two: F= LS - ES +1 gives the task's float (F), which is also displayed near the task.
- The task's duration (D)
- The task Early Finish (EF) and Late Finish (LF) date. Clearly, you obtain the early finish date by adding the task duration to its early start date: EF = ES + D -1 . Same thing for the Late Finish date: LF = LS + D -1
In the above equations if you wonder why there is a -1 or +1, consider a simple task example:
- ES = Day 1
- D = 1 day
- This leads to: EF = Day 1. This means that the task ends the same day as it starts. EF = ES +D -1
- LS = Day 5 (5 days later).
- This leads to: F= 5 -1 +1 = 5. The float is five days, i.e., we can delay the task by 5 days without delaying the project completion date.
|Example PERT diagram, with the labels indicating (from top left to bottom right) Early start, Duration, Early Finish, Late Start, Total Float, Late Finish|
What's the difference between the critical path method and the critical chain method (CCM)?
The critical path method does not account for uncertainty in task duration. So, either you overestimate the task duration to plan for worst case scenarios, or you will finish late... To solve this issue, the critical chain method adds "buffers" at the end of every chain. The buffers are empty tasks associated with a duration equal to the probable delays on the task chain. This way, the buffers will absorb any delay in the execution of the tasks and the project execution date will not change even if a task lags.
How do we calculate the expected time for a task?In the previous section, I have labeled a PERT chart with well defined task duration. However, task duration are very uncertain in practice! So, how did we calculate task duration?
A task can complete very quickly in the best case and take a long time in the worst case (e.g., a key contributor breaks his legs in a car crash and needs 2 months sick leave). So, the calculation of the expected completion time for a tasks must take into account both optimistic case, normal case, and pessimistic case. Now, the question is how do you weight all the cases? The classical practice is to give 4 times more weight to the normal time expectation. This gives:
- expected duration = (optimistic + 4* normal + pessimistic) / 6
- 3 days in the optimistic case
- 10 days in the pessimistic case
- 5 days in the normal case
I you are asked for the differences between the critical path method (CPM) and the program evaluation and review technique (PERT), the answer is that the task duration is assumed to be known in CPM whereas PERT takes into account the uncertainty of task duration, as described in the above paragraph.
Ok, but... In practice, how do I calculate the optimistic / normal / pessimistic time for a task?
There are two ways to estimate the time needed for a task in the optimistic / normal / pessimistic case:
- Divide and conquer: split the task into small pieces, until you see small work element that you can estimate in terms of resources / costs / time required for completion. Then add up the time required for all the elements and you will have a clearer idea of the time required for completing your task. This method is called the "work breakdown structure (WBS)" .
- Use expert knowledge, gathered through previous projects for instance, to estimate the required time for the task. If you have already done 10 similar projects, you should have a clear idea of the complexity of each task. Otherwise, someone in your planning team might have enough experience on that kind of tasks.
How to complete a project faster?
The duration of a project is defined by its critical path. If you want a project to finish faster, you need to reduce the length of the critical path. This means, in turn, reducing the duration of the critical tasks. How do we do that? It's all a questions of resources: I'll tell you the secret -- there are only 3 ways to make a critical task complete faster.
- Reduce the task scope
- Reduce the quality of the tasks' results
- Increase the resources (skills, people, money...) allocated to the task
- Run several tasks in parallel (fast tracking)
That sounds bad isn't it? Either we produce crappy results, or we do not provide all results, or we cost a lot of money to the company? Well, no ! You have not understood the key point! We have looked only at the critical path, but some other tasks have slack! So, we could take resources allocated to the non critical tasks and reallocate them to critical tasks instead. That way we do not increase the cost of the project, but it will complete sooner!
In the figure below, you have two sequences of independent activities in red and blue. The sequence that takes the longest to complete is the critical path. MS project shows the slack time, which is quite practical: the black bars represent the slack time in the figures.
|A Gantt chart created using Microsoft Project (MSP). Note (1) the critical path is in red, (2) the slack is the black lines connected to non-critical activities, (3) since Saturday and Sunday are not work days and are thus excluded from the schedule, some bars on the Gantt chart are longer if they cut through a weekend. (Photo credit: Wikipedia)|
What's a precedence diagram?I have provided you a few examples of Gantt and PERT diagrams above. The precedence diagramming method (PDM) is a method to draw a simpler diagram, without task duration. This diagram just displays the dependencies among the tasks. For instance, take two tasks:
- Dress up
- Go to the postal office
You do not want to go to the postal office naked. So there is a dependency between the two tasks. The "dress up" task must be finished to start the task "Go to the postal office". There are 4 kind of dependencies:
- Finish to start (FS): the example above
- Start to start (SS): task 2 cannot start if task 1 is not started
- Finish to finish (FF): task 2 cannot complete task 1 is not finished
- Start to finish (SF): task 2 cannot finish if task 1 is not started
The precedence diagram draws the tasks in rectangles and connects them with arrows labelled with the type of dependency. With our example it gives:
"Dress up" ------- FS ------> "Go to the postal office"Sometimes the precedence diagrams are complemented with the duration of the tasks and the starting date:
- Early start date
- Late start date
- Early finish date
- Late finish date
To conclude, I advise you to read the PMBOK to learn more about project planning methodologies.