Quick Links

How to Reverse-Engineer a Microsoft Project Schedule


Steven Covey’s brilliant book, The 7 habits of Highly Effective People, outlined seven key steps. One of those steps was to start your day with the end in mind. In project management, this is a familiar scenario, where senior management has given a target or a goal with the end date and — in some cases — the budget laid out. Now the project manager has to figure out how to deliver this. In this article you’ll learn how to start your project planning with a finish date first and then reverse engineer your schedule backwards to a start date.

So let’s get started. There are a few key ingredients needed to make this work.

  • An end date;
  • Some version of Microsoft Project, whether on your desktop or online (This will work with any version of Project from Project 98 forwards.); and
  • A list of key activities the project will encompass.

It’s common for project managers and schedulers to start with a schedule and wrestle through some of the obvious scheduling choices; but if you want the fewest numbers of clicks, avoid this common mistake in schedule creation: In the following diagram, you can see that I am showing the Task Entry view, where the Gantt Chart, the Task Sheet and the Task form are all close together and I have circled three key areas.

These are the Predecessor relationships (there are certainly many more ways to edit this), but essentially we are showing a link (and the type of link) between task 1 and task 2.




Typing, clicking or double clicking any of these areas will allow you to drill down and select a different type of relationship. Typically, in creating a schedule, we want to link activities together. And by clicking, typing or double clicking, you are presented with several choices for establishing a relationship.

In this next diagram, you will see a relationship type called Start-to-Finish.


This can be used for reverse engineering, but it doesn’t allow your schedule to be easily managed in a forward progressing one, so avoid this.

Why? Because the idea is that the start of one task will trigger the finish of another task. If you were building your schedule suing Start-to-Finish, you would be listing the finish date as Row 1, and then linking the next-to-the-last task as the second row in the schedule. This would leave you with the finish of your Project Schedule in row 1 with the following rows evolving to the beginning of your schedule, which could be row 279. As you can see with this next diagram, it’s not the easiest to manage a schedule.




Now that we’ve identified a common pitfall, let’s look at how to get this working correctly! Armed with your project end date or go-live date, you can start planning backwards this way.

Click on the Project Tab (on the Ribbon) and select the Project Information button.







From the Project Information dialog box, choose the Schedule from dropdown choice and select Project Finish Date. This will allow you to enter your end date directly into the Finish Date field (which was greyed out before).














Now start building your project schedule normally. You might want to try this approach:

  1. Enter the Finish date into row 1.
  2. Insert a new row above row 1, forcing the End Date Milestone or Activity to move to row 2. This essentially allows you to plan backwards, but to lay out the schedule as if you had typed it from the start.
  3. With each successive task you add, you will link and create the relationships in the normal way, but as you enter durations and link activities, watch your Project Start date continue to move backwards.

In the diagram below, I used the same tasks as I used in the reverse-engineered schedule above. However, adding them in this order created a Project Start task at row 1 with the Project Complete task at the end of the schedule.




Let’s add some final touches here.

With the end date you should put a deadline as you will most likely be moving or shortening the schedule, which means you’ll be tightly pressed in managing the schedule. Double-click on the last task or milestone (Project Complete) and click on the Advanced tab.

Choose the end date Deadline. When you flip your schedule around, this will set a monitoring point that will help you later should your tasks move beyond the end date of the project. You can see this in the next picture.












Once you have that chosen, click on the OK Button.

In the screenshot below, you can see the end date now has a deadline icon on it. This will stay there as you move the project start date back, and it will help you identify slippage with an alert.


Now if you started managing your project schedule, you would find that every time you typed a new duration, your project schedule would continue to push the start date back. What we need to do is tell Project what the new start date of the project is and to start scheduling from the start and move the end dates out.

Remember how we set up the reverse engineering scheduling mode earlier? We are going to follow these steps again but choose to schedule from the start date.

Click on the Project tab and select the Project Information button on the ribbon.







Select the Project Start Date from the Schedule From dropdown box. Make sure to choose the Project Start Date.

Click the OK Button and you will now be able to manage your schedule normally, with the durations moving out the end date vs. the start date.

















As you make changes in your schedule, your deadline will help show when you will be moving over the set finish date.

You are now ready to do reverse engineering quickly and effectively. Remember, the key steps in this planning technique is to remember to flip the schedule back around to get the benefits of both backwards planning and forward dynamic scheduling.


A version of this article first appeared on the Advisicon blog.
Image courtesy of Quinn Dombrowski CC 2.0

Tim Runcie, PMP, MCP, MCTS, P-TSP, MVP is one of 6 Microsoft Project MVP’s in North America and has held that title for 16 years in a row.  A seasoned veteran of complex programs, and portfolio management systems, Tim works with companies like Microsoft on next generations of Project, Program and portfolio technologies.  Tim is an accomplished speaker, consultant, and educator, supporting the project management community for over 25 years. As the President and founder of Advisicon, Tim has written over 38 books on PM methodologies and technologies. Advisicon has added a nonprofit division focused on helping faith-based and 501-C3 organizations with implementing and training on business solutions available and provide business coaching or process automation with the mission of “Serving those who Serve.”

Share This Post
  1. I would love to be able to follow this, but I am not able, everything breaks down here:

    Now start building your project schedule normally. You might want to try this approach:
    1.Enter the Finish date into row 1.
    2.Insert a new row above row 1, forcing the End Date Milestone or Activity to move to row 2. This essentially allows you to plan backwards, but to lay out the schedule as if you had typed it from the start.
    3.With each successive task you add, you will link and create the relationships in the normal way, but as you enter durations and link activities, watch your Project Start date continue to move backwards.
    What does Step 2 accomplish, how is this new blank row used, what goes in it?

    Thank you,

  2. The insertion of rows at the top of the schedule forces the schedule to move down where the beginning of the schedule is at the top and the end of the schedule is at the bottom. This provides a cleaner and easier to manage and follow view for the end user.

    Customers really like the opportunity to grow the schedule, but when starting from the end, many end users keep the end of the project at row 1, when clearly don’t need to do that.

  3. I’m surprised that you did not mention the use of negative total slack when identifying a slip past the deadline date.

  4. Marcia excellent comment.

    Of course you can use that, in fact there are many variations of alerting for, including baselines and custom fields. Just have a limit to the number of elements I can introduce with this topic.

    But stay tuned there will be more articles forth coming! 🙂

  5. Got it Tim. Thanks for the clarification, great article.

  6. Scheduling from a finish date has a default constraint of ‘As Late As Possible’. When the schedule is then flipped around to work off the start date, do the constraints on all tasks need to be changed to ‘As Soon As Possible’?

  7. Hi Cari,

    Yes, part of the process is to decide if you want in-linked tasks to move to the end date (similar to a backlog) where you bring them into the current work.

    In most cases it is very straight forward.

    1. Select all tasks (you can do this by simply clicking any column header), then on the Task Tab, click the information button and choose the Advanced tab, then click the Constraint type and choose “As Soon As Possible”.

    Great questions, keep them coming.

    You can also reach me directly at Tim.Runcie@Advisicon.com

  8. Thanks a lot, Tim. This is exactly what I was looking for. My schedule looks great!

  9. Hi
    I have 4 small project which each one has an already specified “readiness” date in order to be physically implemented. One Overall project finish date is established, but I need to make a reverse scheduling with each project based on “readiness” dates.

  10. Different problem. I used SF here because parts of the project schedule backwards and some forward. My intent was for these tasks to be scheduled back from task 113 but the dates include one extra day.
    107 Fill pit 2 days Wed 3/17/21 Fri 3/19/21 113SF-1 day
    108 Fill drains 1 day Fri 3/12/21 Sat 3/13/21 110SF-1 day
    109 Excavate 1 day Fri 3/12/21 Sat 3/13/21 110SF-1 day
    110 Excavate 1 day Sun 3/14/21 Mon 3/15/21 111SF-1 day
    111 Rebar 1 day Tue 3/16/21 Wed 3/17/21 112SF-1 day
    112 Form 1 day Thu 3/18/21 Fri 3/19/21 113SF-1 day
    113 Place 1 days Fri 3/19/21 Sat 3/20/21 116SF-2 days


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

− 5 = 2

Thanks for submitting your comment!