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.
Stephanie Hutcheson
Great Explanation. I usually recommend NOT scheduling in reverse when first creating the plan, but I like this tool for the above explanation.
Trevor Rabey
If you ask 100 people how to start a project plan, 99 of them will ask for the finish date with the intention of scheduling backwards from the finish date. When asked why, they will probably say that is what they have always done, or what they were taught, or simply that it is “intuitive”. The problem with intuition is that it is usually or at least often just wrong.
Why is the default in MSP scheduling forwards? Because that is the starting point for using the critical path method (CPM) and CPM is built in to the scheduling engine. If you adopt the CPM and use it properly, many benefits accrue. If you abandon it, then you are up a creek without a paddle.
John Williamson
Thomas: Concerning your objection (1), I should of specified that the first example is used for rough initial planning for individual change requests (CRs) prior to constructing the working schedule. The schedule in reverse function is only used to provide a date for the approval and we only use an eight line schedule for that purpose. Each CR will turn into about 75 tasks and the “reverse lever” is not thrown after that. I definitely did not mean to infer that this is a toggle switch that an be thrown at will.
As far as the quibble (2) goes I agree that “projects fail one day at a time”. However when planning a hire a year in advance (as is the case with our 50 task acquisition of talent), if we could only miss the on-boarding date by one day (after multiple legal reviews), we would be celebrated. Notice that the use of Reverse Alice was only a play on words… the “last date
becoming the first”, the actual tasks are As Soon As Possible and structured as waterfall.
And finally I completely agree with your comment (3). By the way, I read and appreciate your article, very well done, thank you..
Eoin Callan
The trouble with scheduling backwards is you will never know if you are actually going to be late since you have anchored your schedule in the future with an immutable date. There is an alternative to scheduling backwards as described here: Include a deadline for any given task and then use As Late As Possible constraint to schedule the tasks in the related dependency chain prior to the deadline task.
If the deadline changes, or the dates of predecessors, the schedule will reflect the new dates. If the new dates push the task with the deadline to be later than the deadline, an icon with a warning will show in the indicator column.
John Williamson
Eoin: rest assured, nobody around here schedules in reverse. In the first example, the reverse scheduling feature is only employed to arrive at a Start date for a given end date. After arriving at a Start date, notice that the “switch is flipped” and all scheduling is driven forward in a waterfall fashion… as the example shows all tasks are set to ASAP…we are not locked into an immutable Finish date. The first example provides a simple schedule hack that allows one to provide an answer to the question posed. We do not “schedule in reverse”, rather take advantage of this MS Project feature to answer on-the-spot, what-if kind of questions we see frequently on the project. The author is also using a play on words to spike interest in the article and to share this hack.
Look at Stephanie’s comment above, I fully agree with her. We do not use example #1 when creating the actual plan, but rather for answering ad hoc questions prior to construction of the plan. Best.