Author: John Williamson

John Williamson, PMP, brings over decades of experience in project, program and portfolio management, of public sector projects, spanning public health, motor vehicles, corrections, taxation and child welfare services. He is currently kept busy as a schedule consultant on one of California's largest IT projects and enjoys training and mentoring the next generation of project schedulers. Contact John at

How to Schedule in Reverse

Or How to Trust Alice Some of us may remember the early childhood bedtime story of Alice stepping through the looking glass. She finds that, just like a reflection, everything is reversed, including logic (running helps you remain stationary, walking away from something brings you towards it). As a scheduler, have you ever been asked to step through the looking glass? If it hasn’t happened yet, at some point you will likely be asked to do just that. We were “once upon a time” told that MS Project could indeed schedule in reverse, but few of us have ever had the opportunity to do it. Project calls this “Scheduling from the Finish Date.” Today we will take a look at two requests: one from the William, a Project Manager and the other from Mary who works in Human Resources. The first request will leverage the Schedule from Finish Date feature, the second will take an altogether different approach to the challenge. The Existing Schedule shown in Figure 1 was built as planned. We see that it is starting on April 1 and finishing on July 9.   Imagine you’re basking in the glory of your first-ever schedule when William the Project Manager stops by and says, “Nice schedule, but forget about going live on July 9th … I need to know what the Approved date would be if we were to Go-Live on January 31st, and by the way, I will need to know within the next five minutes for a meeting with the our directors.” What do you do? Go ask Alice, or continue reading. Tip: What is good to know is that when using the Schedule from Finish Date feature, action is applied to the entire schedule. This is important to keep in mind. The clock is ticking with four minutes to go. Remembering Alice through the looking glass, and our early training daze with MS Project, we click the Project tab, and then subsequently the Project Information icon. We see the Project Information dialog box shown in Figure 2. The Project Information dialog box shows that: The Start date is 4/1/2019. The Finish date of 7/9/2019 is greyed out. We are scheduling from the Project Start Date.   When we flip the “Schedule from” value to “Project Finish Date.” immediately the Start Date field is greyed out, and we are given the opportunity to enter the boss’s new Finish Date of January 31, 2020.   When we click on OK, it is like stepping through the looking glass: the schedule is now “reversed” and new tasks dates are calculated including the date by which the project must be approved. With minutes to spare we can walk into William’s office and say “We need approval by October 21st, Sir.” Figure 4 displays the Go Live date we entered above, and the newly reverse-calculated Approval date.   As mentioned above, scheduling from the project finish date acts upon the entire schedule. In this case, it’s acceptable and is, in fact, just what was required. But, what happens if you are asked to “reverse schedule” only for a set of tasks in located in the middle of a 1,000 row schedule? Let’s take a look at one approach. Given a set of 18 recruitment tasks positioned in the center of a large schedule, how could one derive the Start date of the first task, given the date of the last task in the set? We need to do this without affecting other tasks in the schedule. In this scenario, the placeholder Recruit Developer tasks were initially entered using a Must Start On constraint on the first task. See Figure 5.   Once again, William does a fly-by and says: “I need to have the Developer on board on September 16th, and Mary in HR would like to know when we will submit the Recruiting Package to her.” In the Placeholder schedule above, we notice that the duration for this recruitment is 46 days. Almost immediately an approach starts to shape up. I call it the Reverse Alice since the “last day” becomes the date of the first task. See Figure 6.   Notice we now have a recalculated Start date for Task 112, without constraints in our waterfall. We landed on the newly provided 9/16/2019 task for On-Boarding as required, and we did not affect other sections of the schedule as we would have if we used the “Schedule from Finish Date” feature. William is now ready to tell Mary that the recruitment package will be submitted to her on 8/1/2019. If you look closely, you will notice that: We inserted new task 111 – Recruit Developer Constraint and set the date to 9/16/2019. We removed the constraint from task 112, the real “first task.” An Early Start (equal to the total duration) to task 112 has been applied. I hope the information presented in this article helps prepare new schedulers for their first trip through the looking glass. Note: The approach descried above was applied to a real-world schedule that contained close to 5,500 rows and included more than 50 such procurements. Each procurement was staged at various times throughout the project lifecycle, and the procurement team was easily able to determine when work on any given procurement needed to begin based on fluid on-boarding requirements.  

Tip: Trust Your Formulas!

Have you ever had a situation where a tested, tried and true formula was producing an “incorrect” result? Recently one of my client schedulers wanted to know, “How can a formula produce correct results for 500 other tasks, but produce an obviously incorrect result for only one task?” In her schedule she was using this formula in the Flag 7 field: IIf([Scheduled Start]<=[Status Date]+1 And [% Complete]<100,Yes,No) It’s obvious that the formula is intended to look at the Scheduled Start date and compare it to the Status Date as set by the scheduler. If the task start date is prior to the status date AND the task isn’t complete, the formula is supposed to render a “yes”; if the condition is false, it renders a “no.” By filtering for “yes” the scheduler quickly determines which tasks for a given week require an update. But after running successfully for six months, the formula was rendering an “obviously incorrect” result in row 902, as shown below. As the novice pointed out “… and anybody can see the Status Date is correctly set for next Friday, and that task 902 isn’t even scheduled to start for a couple of weeks, so why is the formula displaying ‘yes’ when it should be coming up with ‘no’?” I tried using a Status Date further out in the future, and as I expected, other tasks began showing up with “incorrect” results for Flag 7. Now I was sure that nothing was wrong with the formula or the task, but what did all of the “incorrect” Flag 7 tasks have in common? Instinctively, I inserted the Task Mode field and noticed all the tasks with “incorrect” information were set to “Manually Scheduled.” When the Task Mode was set to “Auto Scheduled,” the flag changed from a “yes” to a “no,” indicating that the task was in the future and didn’t require an update by 12-02 2016. “Problem” solved! Image Source