How Task Dates Are Automatically Set in Microsoft Project (Part 3)
Have you ever been unable to change the start date of a task in Microsoft Project? You type in 11/2 for the start date and it changes back to 11/19. In most cases, Project is not misbehaving; you need to understand what Project assumes when it schedules tasks. In this three-part series, we’ll explore how Project’s scheduling algorithms use links, constraints, preset options, and dates to automatically set your task start and finish dates.
As we covered in Part 1, there are several things that can be going on when Microsoft Project sets dates in a way that goes against your expectation. In this series, we cover several of the most common considerations to make that should shed some light on the logic and priorities of Project’s engine:
- How does the Project Start Date affect a Task Start Date? (Part 1)
- How can a Task Date Constraint affect a Task Start Date? (Part 1)
- How do Task Links override a date that I enter? (Part 2)
- How do Linked Summary Tasks affect my ability to set a task date? (Part 2)
- How does an Actual Start Date affect a linked task? (Part 2)
- How can setting Calculate to Manual affect my task dates? (covered in this article)
- How do calendars affect the schedule calculation? (covered in this article)
- How does Resource Leveling affect the schedule calculation? (covered in this article)
There are several options and features that can help you through this process. Two of these features–Show scheduling messages and the Planning Wizard–are alert options that are set by default, but if you want to make sure that they are selected, Part 1 (“Alert Settings”) covers where to find those options.
Another feature in MS Project is the Task Inspector, which explains some of the logic behind the automatic scheduling engine. This tool can be helpful when you are truly confounded, but this article is meant to make these considerations much more intuitive so that you don’t have to refer to the Task Inspector for every single task date that you set. Part 1 (“Enlisting Help from Task Inspector”) covers the basics of using the Task Inspector.
Consideration #6: How can setting Calculate to Manual affect my Task Dates?
The calculation settings can be found under the Schedule tab in the Project Options dialog box (you get to the Project Options dialog by going to File:Options in the ribbon). If you go to the Calculation section of the Schedule tab, you’ll find the option Calculate after every task edit with choices to turn it On or Off. This automatic calculation setting is On by default and should be left on, unless you’re working on a very large project on a very slow machine. When you turn this option Off, forcing calculations to be made manually, a number of features that we take for granted suddenly stop happening.
One of these features is our expectation that the links between tasks will be presented correctly on the Gantt Chart. Figure 1 shows that tasks 27 to 31 are all linked, but the Start Date for each of the tasks is still 9/11 and the links all appear to have negative lags. If you look closely at the bottom of the screen, you can see the words “Calculation Needed”–Project is telling you that there is some data in the chart that may not be presented correctly. To update the calculations, either press the F9 key each time the “Calculation Needed” alert appears, or switch automatic calculation back On.
Next to “Calculation Needed,” it also says “New Tasks: Auto-Scheduled.” A new feature in Project 2010 is that you can click on that tab in the bottom to choose either Manual or Auto-Scheduling for tasks.
You may want to select Manual Scheduling when you are first building your Work Breakdown Structure, so that you do not need to even think about dates or dependencies for tasks. This top-down, “progressive elaboration” approach allows you to concentrate on specifying deliverables and the work packages that will produce them, and the new tasks won’t be automatically scheduled until you toggle the option back to Automatic on the bottom of the screen.
You can also make it so that any individual task is Manually Scheduled by going to Task:Tasks and selecting Manually Schedule. Notice that all tasks selected to be Manually Scheduled have a picture of a thumb tac in the Indicator column.
Whenever you set a task schedule manually, you may or may not enter information about the dependencies, durations, date constraints, etc. Anything that you do enter will be interpreted as best it can, but the calculated schedule will be unreliable until you review the scheduling information and set the tasks to Auto Scheduling. Figure 2 shows some examples of how tasks may appear when they aren’t being automatically scheduled.
Consideration #7: How do Calendars affect the schedule calculation?
Project uses calendars to avoid scheduling work on non-working days. In Figure 3, the 8th of October has been set as a non-working day Exception. To get to the dialog box shown below, go to Project:Properties:Change Working Time. Note that the calendar shown–the Standard (Project Calendar)–is the default calendar for the entire project.
In Figure 4, Task 14 was originally scheduled to start on 10/8, but as we can see, the scheduling engine delays it until the next working day. Looking closely at the Gantt Chart, you can see that Monday the 8th has been grayed out for the entire project, indicating that it is a non-working day.
It is possible for tasks to have specific calendars that are different from the default calendar for the project. Deployment tasks, for example, may need to occur over weekends, as shown below:
The task-specific calendar will always supersede the default project calendar when it comes to identifying working and non-working days for a task. In Figure 6, notice that Task 22 is supposedly a 5-day task scheduled to start when Tasks 20 and 21 finish. However, since the task can only be carried out during weekends, the start is delayed to 11/17, and it doesn’t finish until 12/1.
You may get a similar effect if resource calendars are applied. As with other calendars, a resource calendar specifies the working and non-working time for someone scheduled to work on a task. In Figure 7, the Change Working Time dialog shows that Bill works parttime: 3 days per week.
In Figure 8, Bill and Bob are both assigned to a task at 75%. Even though they are both scheduled to work for 90 hours on the task, it takes Bill an extra two weeks, which affects the Finish Date for the task.
Consideration #8: How does Resource Leveling affect the schedule calculation?
When a Project Manager first sees the schedule for Task 25 below, he may be tempted to assign Bob (the fulltime worker) to Task 26 as well. But as Figure 9 demonstrates, assigning Bob to both Tasks 25 and 26 overloads him.
Note: A custom split view that shows both the Gantt Chart and the Resource Usage view is excellent for exposing these sorts of resource overloads. To add the Resource Usage view to the Gantt Chart, go to View:Split View in the ribbon, and use the drop-down arrow next to Details and select “Resource Usage.”
The Project Manager may then follow Microsoft Project’s advice and use the Resource Leveling feature, which postpones one of the tasks to avoid the resource overload. Notice in Figure 10 how leveling has impacted the Task Dates for the task “Develop Work package b.”
Note: To learn more about Resource Leveling, see our post on Optimizing Your Project Plan (“Resource Leveling”).
Just looking at the Gantt Chart, it’s not obvious why the task does not start immediately after the predecessor task (14) has finished. You need to look at a view like the Leveling Gantt (as shown below) in order to understand the scheduling logic. To get to the Leveling Gantt view, go to View:Task Views,then click the Other Views drop-down and select More Views. In the More Views dialog box, select “Leveling Gantt” and click Apply.
If you think a date or a link is acting strangely, then don’t give up. Project is doing what it was designed to do; you just need to hang in there and understand how Project deals with dates, links, and constraints as it schedules your tasks. Chances are pretty good that once you understand the mechanics behind it, you’ll agree with the automation.