How scheduling works in Project
In past versions of Project, users have sometimes been bewildered by how Project automatically performs scheduling calculations. This article demystifies the complexities of the Project scheduling engine.
This article also introduces a new scheduling method at your disposal. Welcome to manually scheduled tasks. With manually scheduled tasks, Project 2010 provides the project manager even more control over the schedule.
In this article
The big picture: How is a project scheduled?
Project 2010 introduces a new mode that gives users complete control over how tasks are scheduled — manual scheduling. Let's look at this more closely so that you don't miss any key features.
Project can schedule tasks using two methods: manual scheduling and automatic scheduling With manual scheduling, changes to factors such as task dependencies, constraints, and project calendars do not automatically adjust task dates.
1. Two manually scheduled tasks. The Duration is a text value, not a number. Since the duration is a text value, a start date hasn't been set automatically by Project.
2. Two automatically scheduled tasks. The Duration is a number value. Since the duration is a number value, a start date has been automatically set by Project, and a bar is displayed.
Manually scheduled tasks
You can place a manually scheduled task placed anywhere in your schedule, and Project won't move it. This new feature gives you greater flexibility and control over planning and managing their schedule.
Why would you care? Well, at times project schedules are often very informal. They begin as simple lists of dates from e-mails, meeting with stakeholders, or a hallway conversation. Project managers very often do not have complete information on work items. For example, they may only be aware of when a task needs to be started, but not its duration until they have an estimate from their team members. Also, they may know how long a task will take, but they do not know it can be started until they have approval from the resource manager.
Here are some things to keep in mind with manually scheduled tasks.
You'll never be left in the dark. Manually scheduled tasks have their own indicators and task bars to help you distinguish them from the "classic" automatically scheduled tasks.
Anything goes. When a task is in manually scheduled mode, the Start, Finish, and Duration columns can be blank or include text values in addition to recognizable dates.
Switching scheduling modes You can change a task back and forth from manually scheduled to automatically scheduled. Be careful, though. When you change a task from manually scheduled to automatically scheduled, Project is going to have to make some decisions. If a task's duration was "A fortnight", Project will by default use an estimated duration of "1 day?" if the task is set to automatically scheduled. After all, you can expect project to know that a fortnight is two weeks long.
Control slippage If a manually scheduled task has to be delayed due to a slippage, its successor tasks will not be automatically pushed out. Project managers can decide to keep the original dates if their resources are able to proceed as planned, or delay the successor tasks if there are hard dependencies.
Effort-driven impacts Manually scheduled tasks cannot be set to effort-driven. The duration of a manually scheduled task will not change as resources are assigned to it
The following table shows how Project attributes are defined and used for scheduling manually and automatically scheduled tasks.
Automatically scheduled tasks
Automatically scheduled tasks are the classic way Project schedules your tasks. Automatic scheduling provides a highly structured, systematic means of managing project schedules. Based on users’ input, such as task duration, planned work, number of resources, and constraint dates, Project calculates the earliest and latest dates for tasks for the optimal schedule.
Project schedules a project from the information that you enter about the following:
The overall project.
The individual work items (called tasks) required to complete the project.
If necessary, the resources needed to complete those tasks.
If anything about your project changes after you create your schedule, you can update the tasks or resources and Project adjusts the schedule for you.
For each task, you might enter one or all of the following:
Using this information, Project calculates the start date and finish date for each task.
You can enter resources in your project and then assign them to tasks to indicate which resource is responsible for completing each assignment. Not only does this help you plan project staffing, it can also help you to calculate the number of machines needed or the quantity of material to be consumed. If you enter resources, task schedules are further refined according to the following resource information:
Working times entered in calendars
Other elements, such as lead time and lag time, task types, resource availability, and the driving resource, can affect scheduling, so understanding the effects of these elements can help you to maintain and adjust your schedule as needed.
Changing task scheduling modes
You can change a task's scheduling back and forth from automatic to manual. When you change task modes, keep the following in mind.
A task that is changed to automatic scheduling will have duration and dates set to Project's default settings. For example, Project will change a manually scheduled task with a duration of "A couple weeks" the default of "1 day?" A task with a manually entered start date of "tomorrow," will have the start changed to the project start date when it is changed to an automatically scheduled task.
A task that is changed to manually scheduled will retain its duration and dates. However, after the task is set to manually scheduled, the duration and dates can be any number, text, or date value.
How does the project start date affect the schedule?
If you enter a start date for the project, by default, Project schedules tasks to begin on the project's start date and calculates the project's finish date based on the last task to finish.
For automatically scheduled tasks, as you enter more information about tasks, such as task dependencies, durations, and constraints, Project adjusts the schedule to reflect more accurate dates for tasks.
When you create a new project, you first enter the project's start date. When you schedule a project from the start date, all tasks start at the project start date unless you specify otherwise.
For both manually scheduled tasks and automatically scheduled tasks, with no task dependencies or constraints applied, the project's duration is the same as the duration of the longest task. In other words, the project finish date is the same as the longest task's finish date.
Task dependencies, such as the finish-to-start dependency between the first and second tasks (as shown here), can change the project's finish date.
Nearly all projects should be scheduled from a known start date. Even if you know the date that a project must be completed, scheduling from a start date gives you maximum flexibility.
However, you might want to schedule from a finish date when:
You need to determine when a project must start so that it finishes on a specific required date.
You are not sure when your project will begin (for example, you are receiving work from another source that could be delayed).
Your project management methodology requires you to schedule from a finish date.
As you work with your project that is scheduled from a finish date, be aware of differences in the way that Project handles some actions:
When you enter an automatically scheduled task, Project automatically assigns the As Late As Possible (ALAP) constraint to the finish date of the task. You should set other constraints only when necessary.
If you drag a Gantt bar to change the finish date of a task, Project automatically assigns a Finish No Later Than (FNLT) constraint for an automatically scheduled task.
If you change your project to schedule from a finish date and it was previously scheduled from a start date, you will remove all leveling delays and leveling splits from tasks and assignments that have been automatically scheduled. Tasks that are manually scheduled are not affected.
If you use automatic leveling to reduce resource overallocations in your project, Project will add a leveling delay after a task rather than before a task.
How do constraints on automatically scheduled tasks affect the schedule?
When you need to control the start or finish date of an automatically schedule task, you can change the constraint on the task. Flexible constraints work with task dependencies to make a task occur as soon or as late as the task dependency will allow. For example, a task with an As Soon As Possible (ASAP) constraint and a finish-to-start dependency will be scheduled as soon as the predecessor task finishes. By default, all tasks in a project that is scheduled from the start date have the ASAP constraint applied. Likewise, by default, all tasks in a project that is scheduled from the finish date have the As Late As Possible (ALAP) constraint applied.
Constraints with moderate scheduling flexibility will restrict a task from starting or finishing before or after a date you choose. For example, a task with a Start No Earlier Than (SNET) constraint for June 15 and a finish-to-start dependency to another task can begin June 15 if its predecessor is finished by June 15 (or later if its predecessor finishes after June 15), but it can't be scheduled before June 15.
With the default finish-to-start task relationship and an ASAP constraint applied to these tasks, the successor task (the second one) is scheduled to begin as soon as the predecessor task (the first one) is scheduled to finish.
With a SNET constraint applied, the successor task cannot begin before the constraint date, even if (as shown here) the predecessor task is completed before the constraint date.
Inflexible constraints override any task dependencies by default and restrict a task to a date you choose. For example, a task with a Must Start On (MSO) constraint for September 30 and a finish-to-start dependency to another task will always be scheduled for September 30 no matter whether its predecessor finishes early or late.
If a task that is constrained to a date has a predecessor that finishes too late for the successor to begin on the date specified in the constraint, negative slack can occur.
To review or change the constraint on a task, right-click on the task, click Task Information , and then click the Advanced tab. Constraint information is in the Constraint type and Constraint date boxes.
How do deadline dates affect the schedule?
Deadline dates don't usually affect task scheduling. They are used to indicate a target date you don't want to miss, without requiring you to set a task constraint that could affect scheduling if predecessor tasks change. A task with a deadline is scheduled just like any other task, but when a task finishes after its deadline, Project displays a task indicator notifying you that the task missed its deadline.
Deadline dates can affect the total slack on tasks. If you enter a deadline date before the end of the task's total slack, total slack will be recalculated by using the deadline date rather than the task's late finish date. The task becomes critical if the total slack reaches zero.
You can set deadlines for summary tasks as well as individual tasks. If the summary task's deadline conflicts with any of the subtasks, the deadline indicator signifies a missed deadline among the subtasks.
But deadline dates can affect how tasks are scheduled if you set a deadline date on a task with an As Late As Possible (ALAP) constraint. The task is scheduled to finish on the deadline date, though the task could still finish after its deadline if its predecessors slipped.
To review or change a task deadline, right-click on the task, click Task Information, and then click the Advanced tab. Use the Deadline box.
How do calendars affect the schedule?
Calendars determine the standard working time and nonworking time, such as weekends and holidays, for the project.
Project calendars are used to determine the resource availability, how resources that are assigned to tasks are scheduled, and how the tasks themselves are scheduled. Project and task calendars are used in scheduling the tasks, and if resources are assigned to tasks, resource calendars are used as well.
The calendars referred to in Project are:
Base calendars These are the foundations for the other types of calendars. You can also choose a base calendar to be the project calendar, and you can apply a base calendar to tasks as a task calendar or as the default hours for a resource calendar. Project provides three base calendars: the Standard, 24-Hours, and Night Shift calendars. You can customize your own base calendar by using any of the base calendars provided.
Project calendars These set the standard working and nonworking times for the project as a whole. If resource calendars or task calendars are not used, tasks are scheduled during the working time on the project calendar by default.
Resource calendars These are based on the Standard calendar by default. You can change working time or nonworking time for specific resources or a set of resources, ensuring that resources are scheduled only when they are available for work. If you have changed working or nonworking time on a resource calendar and the resource is assigned to a task, the task is scheduled during the working time on the resource calendar.
Task calendars These can be used to define working times for tasks outside the working times in the project calendar. When a task calendar is assigned to a task and the resource assigned to the task has different working times in its resource calendar, the task is scheduled for the overlapping working time of the two calendars. But you can set a task option to ignore resource calendars and schedule the task through the resource's nonworking time.
To work with calendars, click the Project tab, and then click Change Working Time.
How do resource assignments drive the schedule?
If you don't assign resources to tasks in your project, Project calculates the schedule using durations, task dependencies, constraints, and project and task calendar information. If you do assign resources, the tasks are also scheduled according to resources' calendars and assignment units, providing for more accurate scheduling.
An assignment is the association of a specific task with a specific resource that is responsible for completing the task. More than one resource can be assigned to a task. Work resources, material resources, and cost resources can be assigned to tasks. Unlike work resources, assigning material resources or cost resources to a task does not affect task scheduling.
For example, in your project you have a task named Develop specifications. You also have an engineering resource, Sean. If you assign Sean to the Develop specifications task, the scheduling of this task depends on Sean's resource calendar and assignment units, in addition to task information such as duration, task dependencies, constraints, and calendars.
In addition to scheduling according to task information, after you assign resources to the tasks in your project, Project has additional resource and assignment information to use in calculating schedule information, including:
The amount of work or overtime work the resource is assigned to do, and how that work is distributed over time. Work distribution over time can also be affected by work contours.
The number of assignment units for the resource, that is, part-time, full-time, or multiple, on the task.
The task type, which affects how a schedule changes if you revise the existing assignment. The three task types are fixed unit, fixed duration, and fixed work.
Whether the task is effort-driven. If a task is effort-driven, as resources are added or removed on the assignment, the work remains constant for the task and is redistributed among the resources. For fixed-unit tasks, for example, one result is that if more resources are assigned, a shorter duration is required to complete the task.
Note Manually scheduled tasks cannot be set to effort-driven. The duration of a manually scheduled task will not change as resources are assigned to it.
Resource calendars. Project schedules the assigned resources based on the working and nonworking times indicated on their resource calendars.
To assign resources to tasks, click the Resource tab, and then click Assign Resources .