Thursday, June 30, 2016

Practical PMP with MS Project - Negative Total Float



Can negative float exist in a schedule network? What impact does it have? How does it impacts the critical path? As a Project Planner or Manager how should work on these cases?

These were some of the questions that came up in a recent session on Practical PMP with MS Project. The MS Project® version used was 2016 and PMBOK® version used is its 5th edition.

First, the definition of Total Float (or Total Slack). Putting it simply:  "This is the amount of time that an activity can be delayed without delaying the project finish date or violating a schedule constraint."

Taking an example - say you have a task "Task - A". This task can be delayed by 3 days without delaying the project's finish date. The total float of Task - A is 3 days.

Now, let us take a MS Project sample, which is shown below. There are many tasks in this project - each of these tasks have Free Slack (or Free Float) or Total Slack (or Total Float) shown. To see these floats - just switch to View tab -- Data group -- Tables -- Schedule table (or you can add the columns in the default Entry table).

Figure - 1: A Sample Project
In the above project, let us look at Task B. It is starting on Wednesday (July 1) and finishing on Friday (July 3), i.e., a duration of 3 days. The project's end date is Wednesday, July 8 (in next week). Obviously, you can push "Task B" by 3 days - Monday, Tuesday and Wednesday (July 6, July 7 and July 8) - without impacting the finish date of the project. Hence the total float or total slack for Task B = 3 days. 

Note the critical path here: Start - Task E - Task F - Finish. It is the longest path or path having float values less than equal to zero. The critical path is highlighted in red. To see the critical path enable the checkbox "Critical Tasks" under Format tab -- Bar Styles group. There many other ways to see the critical tasks.


Next, let us see when the negative total float can come. 

Scenario - 1: Setting a Hard Constraint (MSO)

I'll be setting a hard constraint on Task B - a Must Start On (MSO) constraint. This can be done in the Task Information dialog box, which is launched when you double click on a task.

Figure - 2 : Hard Constraint Set
I have set the MSO on June 30 (Tuesday) for Task B, 1 day before the scheduled start of the task, which is July 1 (Wednesday). Next, I pressed the "OK" button in the dialog box. 

As I pressed OK, the below message popped up. I selected the 3rd option and continued by pressing OK button.

Figure - 3: Message while Setting the MSO

Next, the below message popped up. This is clearly saying there will be scheduling conflict if you set this constraint. 

Figure - 4: Message - Scheduling Conflict
We will go ahead as we know there will be scheduling conflict by setting a hard constraint on a linked task. I selected the 2nd option above and then clicked OK. 

Now, see the impact on the schedule. The new schedule comes as shown below with two critical paths now. But more importantly, the total float/slack of Task B is now changed from 3 days to -1 day.

Figure - 5: Total Float as Negative with MSO Constraint
The constraint is shown in the indicator column. As you can see B's total slack/float has turned negative. Similarly for the tasks it has been linked to. Also, another critical path has come in, i.e., Start - Task A - Task B - Finish. This is due to my setting for critical path - any tasks having a float value less than equal to zero will be critical.

By how it became -1 day (earlier 3 days)?

To understand that, let us draw the Schedule Network Diagram, where we will find out the Early Start (ES), Late Start (LS), Early Finish (EF) and Late Finish (LF). I am using Forward and Backward pass approach to calculate these values (as one would be doing while preparing for PMP Exam)
Figure - 6: Forward and Backward Pass Calculation

The legend on the top right of the above diagram shows the ES, LS, EF, LF values for each activity. 


Now total float is calculated as the difference between LS and ES or the difference between LF and EF. For example the total float for Task A = LS - ES = 4 - 1 = 3 days. Take the Task B, for it total float = LS - ES = 6 - 3 = 3 days. The result is same while being calculated with MS Project (refer Figure - 1). But that diagram does not show the ES, LS, EF, LF values. The below one shows (Figure - 7). To see Early Start, Late Start, Early Finish and Late Finish, you can add them as columns into the table of MS Project view.


Figure - 7: Forward and Backward Pass - Auto Calculated in MS Project

These values exactly matches what we saw in theory. 
For Task B, when it was scheduled, without any constraint:

ES = Wednesday (July 1) 
LS = Monday (July 6)
EF = Friday (July 3)
LF = Wednesday (July 8)
Total Slack = 3 days

Now, let us see what happens when I applied the MSO constraint. The values change as shown below.
Figure - 8: Forward and Backward Pass with Constraint
- Auto Calculated in MS Project

The values for ES, LS and also EF and LF have changed. By applying a hard constraint, we changed the dates for ES, LS, EF and LF.


This resulted in the Total Slack/Float as -1 day.


Scenario - 2: Setting a Semi-Flexible Constraint (SNLT)

In this scenario, I am setting a semi-flexible constraint on Task B, i.e., Start No Later Than (SNLT) constraint. I'll set the constraint in similar fashion as done before. The constraint date is June 30 again.


Figure - 9: Total Float as Negative with SNLT Constraint
As you can see, here again the total float/slack has turned negative for Task B. Here too, we have multiple critical paths.

Scenario - 3: Setting a Deadline 


In this case I am setting a deadline for Task B. Task B is scheduled to be completed by Friday, July 3. (Check the Figure - 1). I am setting the deadline as Wednesday, July 1. Deadline can be set from the Task information dialog box as shown below.


Figure - 10 : Setting Deadline for Task B
After I set the deadline, I pressed on OK button on the above dialog box. Now see how the schedule for the project looks like.
Figure - 11: Total Float as Negative with Deadline
In this case, again the total float has turned negative. There are now multiple critical paths as float value is negative for some of the tasks. 

Finally, coming back to our initial set of questions:

1. Can negative float exist?
Yes. As we saw, negative float can exist with various scenarios. If total slack or float is positive, it informs about the time that the task can be delayed without delaying the project's finish date. If total slack/float is negative, it informs about the amount of time that must be saved so as not to delay the project's end date.

2. Where does negative float come?
I have listed scenarios where negative float comes up for the schedules - primarily with constraints (deadline, if you think at a higher level, is also a type of constraint). So, negative total float can come up when you violate a schedule constraint.

3. What impact does negative floats have?
It lessens the flexibility of the schedule. A schedule with many negative floats is not a desirable one. The schedule also becomes quite unrealistic.

4. What impact does it have on the critical path?
There will be multiple critical paths in the network diagram now. This increases the risk of the project. Do note that critical path setting here has been done that way from Backstage View -- Options. 

5. As a Project Planner or Manager how should work on these cases?
Rework the schedule to remove the negative floats. In fact, there are cases when a schedule with negative float will not be accepted by your sponsor or sponsoring organization.




You may also like courses on Practical PMP:

You may also like:

Monday, May 16, 2016

PMP Success Story: Understand the Concepts Well to Succeed



Saneesh Sukumaran achieved his PMP® credential in a short period of time – in just over one month! He was part of my class in March 2016. The day he was certified, he informed via mail, as he was then at Singapore. The happiness on being a PMP was palpable in his mail. I share his happiness.


Saneesh is an entrepreneur. He is the founder of an online start-up Wedeterna.in. I remember him to be very attentive in the class. He will ask questions only when he has thought through all the possible options in his mind. During lunch, I came to know more about his journey as an entrepreneur and also he had a number of questions on how to be a PMP.  

Today, he is a successful PMP. Go on and read his unique experience.

*********

It was a friend of mine who recommended Satya Narayan Dash’s course while discussing about PMP and that is how I attended his training session end of March 2016. I am happy to have taken my friends advice as Satya’s coaching proved to be a great asset. Even while preparing for the exam a month later I could recall the specific points he taught in the class.

PMP Coaching Experience
Satya was great in explaining concepts. While going through the course content, he gave lots of tips and tricks for understanding the concepts better. He kept reminding how important it is to spend few minutes recapping the class contents on the same day (which I regret not doing). The batch was a bunch of good people and had lots of questions. I believe being attentive in the class helps.

Own Study

Two week after the class I quickly recapped the contents that was taught at a high level, spend time with the online videos. I wanted to write the exam sooner and did not want to drag on. I used the course materials that was provided so that it helps me refresh my learnings from the classroom session. Then I applied for the PMP exam. 

Simultaneously, I also researched the study books and made a plan. I checked out Rita and after few pages, I realized it may not work for me. I checked out Headfirst and found it to be of my taste. The plan was to go with Headfirst along with PMBOK® and then skim through Rita, and then take practice questions and exams available. I also fixed the date for exams on 10th of May.

Any plan rarely works out the way you plan it. Due to various other commitments, I was left with little time to prepare. To be specific, 1st of May was the start of my second or real first stage of preparations. During my research earlier, I had realized that I did not have to remember all the ITTOs (Inputs, Tools and Techniques and Outputs) by heart. As long as I have a good understanding of the concepts, I stand a chance in cracking the exam.  With little time left I dedicated the rest of the days for preparations almost full time - full time here involved other unavoidable errands. However, the priority was to study.

In the end, I went over the Headfirst book doing almost all the exercises and the questions and referenced PMBOK thought out. Many times I read full chapters from PMBOK. Next, I took the first 100 questions at the back of Headfirst, then another 100. I was able to score more than 80%. Later, I went to Rita’s book and did all the questions available at the end of each chapter. I took as many practice tests as possible. In the meantime, I also kept revising important concepts, tools used during this period, which helped me to form a strong base on the things I learned.

My PMP Exam Experience (At the Exam Centre)
During the practice exams I was doing 100 questions in around 1 hour and 20 minutes. But I saw a pattern in my way of answering the questions, i.e., I missed something that was obvious or sometimes I mistook a word. 

I realized I need to read the questions more carefully and decided to read every questions twice before answering the questions during the actual exam. I wanted to try this approach in one practice test before the exam. But I had just one day left (already scheduled for 10th May) by that time and hence could not do that. Rather on the penultimate day before the D-day, I decided to revise what I have learned.

In the actual exam, I applied the approach of reading the question twice before answering. But I knew it won’t leave me much time with this approach. Hence to be on the safer side, I decided to answer all the questions in one go, marked the ones for review on which I was doubtful and proceeded till the end in just one iteration. 

I knew it was going to take more time than the practice tests. But it actually took longer than expected. I finished all the questions with only 20 mins left. I took a 5 minutes break, came back to exam seat and revised the questions marked for review with very little time left. I think I only changed the answer of one question during the review – the only review I could have. Fortunately for me, it worked!

Suggestions for PMP Aspirants
  • The most important thing to crack exam is to have a clear conceptual understanding on how project management works as outlined by PMBOK Guide. Then you practice questions and revise your concepts to validate your understanding.
  • Initially I spend few hours researching/reading on what are best checklists/notes/formula books etc. It was overwhelming. Hence, I read about people’s experiences on this blog on what they did and what they referred, which all lead back to the 1st point: understanding the concepts well. I didn't spend any more time for those checklists/formula book/notes et al; Rather I honed my understanding on the topics.
  • In retrospect, one thing I would have done differently. I should have revised the classroom’s learnings the same day during my training and prepare a little for the next classroom session – as the session was spread over 4 days in weekends. I believe it would have helped me more.

Brief Profile: I am Saneesh Sukumaran, working with an online startup Wedeterna.in. Before launching the startup, I was a QA Manager with monster.com.

*********

Saneesh’s online PMP profile is available at PMI®’s online credential registry. 


I am thankful to Saneesh for sharing his experience. I do believe it will help this blog’s readers, who aspire to be PMP, in reaching their goal. 



Sunday, April 03, 2016

Actual Cost Vs Actual Cost of Work Performed(ACWP) - Practical PMP with MS Project



In a recent session of Practical PMP with MS Project, conducted globally, one of the participants had a problem while calculating the EVM metrics. 

I. The Issue

His situation was this:
The project was planned and then baselined.  Post it, the execution has been undergoing (we were in Cost Management knowledge area). To check on the project variances, status date was set. After tracking was done with MS Project, actual data got populated. Next, when he tried to calculate Estimate to Complete (ETC), a metric in Earned Value Management (EVM), there was a mismatch while using the Actual Cost (a field in MS Project) as compared to using AC(ACWP) field.
He was not sure which field ETC should take for its calculation - ACWP or Actual Cost. MS Project 2016 was used in the session. 
Do note that ETC metric of EVM is not available by default in MS Project. You have to create a custom field and apply formulas to get ETC. Other metrics such as VAC, BAC etc. are available by default. 

Here is a snapshot of the project that the participant had done.



Figure - 1 - EVM Metrics
As you can see, the Actual Cost and AC(ACWP) field have different values. Actual Cost is $19,080 whereas AC(ACWP) is $18,080! This raised questions.

Is there anything that went wrong in calculation? 
Which field is considered for Cost Variance? Is it Actual Cost or AC(ACWP) field? 
Which field is considered for Cost Performance Index (CPI)? Actual Cost or AC(ACWP) field? 

II. A Brief Theory on EVM Metrics - CV and CPI

Let us briefly check the theory. This also will help you understand the importance of Actual Cost or AC(ACWP) fields.

Cost Variance (CV)

  • Formula : Cost Variance = Earned Value - Actual Cost
  • If CV < 0 or negative, it is bad. It means, we are over budget.
  • If CV > 0 or positive, it is good. It means, we are under budget.
  • If CV = 0, it is alright. It means, we are on budget.

Cost Performance Index (CPI)
  • Formula : Cost Performance Index = Earned Value / Actual Cost
  • If CPI < 1, it is bad. It means, we are over budget.
  • If CPI > 1, it is good. It means, we are under budget.
  • If CPI = 1, it is alright. It means, we are on budget.

III. How MS Project Calculates CV and CPI?

Now back to our question. Which one should be taken in MS Project? The "Actual Cost" field or the "AC(ACWP)" field?As in the 1st figure,
  • Actual Cost field value at Level - 1 of the WBS (i.e., Project): $19,080.00
  • AC (ACWP) field value at Level - 1 of the WBS: $18,080.00
As you can see, these two fields are not having same value. There is a gap of $1,000. Why this gap? Because for one the tasks in MS Project, a "Cost Resource" has been assigned, whose value is $1,000. This one is reflecting in the Actual Cost Field, but not in the AC(ACWP) field. This is shown below. 

Figure - 2: Handling of Cost Resource
Cost Resource is MS Project is handled differently. After assignment to the task, this field has to be updated in the "Act. Cost" of the split view, which in turn gets reflected in the "Actual Cost" field. 

But this will be not reflected in the AC (ACWP) field. Why?

ACWP stands for "Actual Cost of Work Performed". MS Project is considering the work planned, work done or completed while calculating the Earned Value Metrics. Hence all the metrics related to Cost Performance is based on AC (ACWP), not the Actual Cost field. However, the AC(ACWP) field is calculated based on Actual Cost field. This can be changed from Options --> Schedule --> Calculation options for this project: Actual costs are always calculated by Project.


Let us quickly check it mathematically, using the formula as we have seen.


Cost Variance (CV):

  • If I take Actual Cost field, then CV will be "Earned Value EV (BCWP) - Actual Cost". At the project level it comes as $14,720.00 - $19,080.00, which ($4,360). This does not match the CV shown Figure - 2.
  • But if I take the AC(ACWP) field, then CV will be "Earned Value EV (BCWP) - AC(ACWP)". Again, at the top level it will be $14,720.00 - $18,080.00, which is ($3,360). This matches the number in Figure - 2.
Cost Performance Index (CPI):
  • If Actual Cost field is taken, then CPI  = "Earned Value EV (BCWP) - Actual Cost"
    => CPI = $14,720.00/$19,080.00
    => CPI = 0.77
    This does not match the value as shown in Figure - 2.
  • If AC(ACWP) field is taken, then CPI  = "Earned Value EV (BCWP) - AC(ACWP)"
    => CPI = $14,720.00/$18,080.00
    => CPI = 0.81
    This matches the value as shown in Figure - 2.

IV. PV (or BCWS), EV (or BCWP), AC (or ACWP) in MS Project

Hence, while calculating the EVM metrics use the AC(ACWP) field in place of Actual Cost field. Because project is considering the money spent for the work being done. In MS Project terminologies, these are used.
  • Planned Value - PV (BCWS): This is the Budgeted Cost of Work scheduled. It equals Planned Value (PV) in the PMBOK Guide.
  • Earned Value - EV (BCWP): This is the Budgeted Cost of Work Performed. It equals Earned Value (EV) in the PMBOK Guide.
  • AC(ACWP): This is the Actual Cost of Work Performed. It equals Actual (AC) in the PMBOK Guide. But this is not same as the "Actual Cost" field in MS Project. But it is the Actual Cost (AC) from EVM's perspective.

V. PV (or BCWS), EV (or BCWP), AC (or ACWP) in Graphical Reports

If you see the in built graphical reports, which is available in MS Project 2013/2016, then this is how it will be seen for PV(BCWS), EV(BCWP) and AC(ACWP). Note that here AC(ACWP) is considered.

Figure - 3: EAC, BCWS(PV), AC(ACWP), EV(BCWP) 
For Cost Performance Index (CPI) (and Schedule Performance Index (SPI)). For CPI calculation also, AC(ACWP) field is considered.

Figure- 4: CPI and SPI 
Let us also see how it happens if I export them over to MS Excel. 

Figure - 5: EVM Report in MS Excel
Here the notations are Planned Value, Earned Value and AC. But be very clear that it corresponds to PV(BCWS), Earned Value (BCWP) and AC(ACWP) fields of MS Project.

For more details on the course, refer: Practical PMP with MS Project

To know how theoretical aspects of PMBOK Guide can be used with a hands-on tool like MS Project 2016, you can refer this whitepaper: PMBOK 5th Edition with MS Project 2016 - A Practical, Hands-On Guide