|< Day Day Up >|
In a project with a fixed start date, you probably want Microsoft Project to schedule tasks as soon as possible after the start of the project in order to minimize the overall duration of the project. For the same reason, if the project is scheduled from a fixed finish date, you want Project to schedule tasks as late as possible so that they are close to the fixed finish date and keep the duration of the project as short as possible. However, there are many circumstances in which a task must be scheduled to start or finish by a specific date. These fixed-date requirements are called task constraints in Microsoft Project. They might be due to requirements from outside the project, or they might be the result of interim deadlines imposed by the project manager. External constraints might be deadlines imposed by customers, contractors, the government, or policies within the organization that are external to the project. Constraints that are internal to the project might be such things as progress reviews and reevaluations of the schedule as each major phase of the project nears completion. The following are some specific examples of task constraints:
In all these cases, either the start or finish of a task is to be linked to a specific date in the schedule, and you want Project to take this constraint into consideration when scheduling the task.
Understanding the Types of Constraints
Constraints are defined by entries in the Constraint Type and Constraint Date task fields (see Figure 6.15). By default, a new task you create has no constraint date. When you add a task to a project that is scheduled from a fixed start date, Project supplies As Soon As Possible in the Constraint Type field as a default entry. This entry means that there is no fixed date requirementin other words, no constraintand the task will be scheduled as soon as possible after its predecessor requirements are met. The Constraint Date field for the task is given the default entry NA.
Figure 6.15. The default constraint type is As Soon As Possible and the default constraint date is NA on the Advanced tab of the Task Information dialog box.
If the project is scheduled from a fixed finish date, Project supplies new tasks with the default entry As Late As Possible in the Constraint Type field. This entry also means that there is no constraint and the task will be scheduled as close to the finish date of the project as possible (considering the schedule for successor tasks, which must also finish before the project's finish date). Again, the Constraint Date field has the default entry NA.
The Constraint Type and Constraint Date fields are available on the Advanced tab of the Task Information dialog box. They can also be inserted as columns in a task table. The Constraint Type field provides a drop-down list of the eight possible constraint types that you can use to define any possible date constraint. These types are described in Table 6.2. Constraint types are usually referred to by the acronym shown in the first column of the table.
Table 6.2. The Constraint Types
The first two constraint types in Table 6.2, ASAP and ALAP, have no associated constraint datein fact, they are really nonconstraints.
The duration of a sequence of tasks can expand for a variety of reasons; for instance, new tasks might be inserted in the sequence or existing tasks might experience duration inflation (that is, increases in duration values). In a forward-scheduled project (that is, one with a fixed start date), the expansion of duration pushes tasks to later dates. If the tasks in the sequence have the constraint type ASAP, they can be rescheduled to later dates without limit as the sequence expands. In a project with a fixed finish date, the expansion pushes tasks back to earlier dates. If the tasks in the sequence have the constraint type ALAP, they can be rescheduled to earlier dates without limit as the sequence expands.
The constraint types are classified as flexible and inflexible , based on whether they present a barrier to an expanding project schedule. The ASAP and ALAP constraints present no barriers in any situation and are always classified as flexible.
The last two constraints in Table 6.2, MSO and MFO, are considered inflexible in all circumstances because they can block the expansion of a task sequence. If the linked sequence expands so much that it requires a task with one of these constraints to move beyond an MSO or MFO constraint date, Project can't honor the defined links and at the same time honor the defined constraints. By default Project honors the constraint and ignores the dependency link, forcing the constrained task to overlap its linked task in a way that is contrary to the intent of the link. (See the section "Deciding to Honor Links or Honor Constraints," later in this chapter, for information about changing this default.)
Figure 6.16 illustrates the conflict between a task link and an inflexible constraint. The milestone Product Ready for Delivery must be completed by March 11, 2004. It has a Finish-to-Start link to its predecessor, Prepare for Shipping. The predecessor finishes in time for the milestone to meet its deadline in Scenario A. In Scenario B, however, the predecessor has been delayed because of duration inflation in an earlier task, and now it is impossible to honor both the link and the constraint. By default Project honors the constraint and schedules the milestone on its constraint date, which requires that it ignore the intent of the link. The predecessor finishes after the milestone's date, causing the linking line to wrap back around as though the link were defined with lead time.
Figure 6.16. When a task's link definition and constraint definition are incompatible, Project normally honors the constraint.
In a fixed start-date project, duration inflation in predecessor tasks tends to push successor tasks to later dates. Constraints that prohibit successor tasks from being rescheduled to later dates are therefore inflexible constraints. The SNLT and FNLT constraint types are therefore called inflexible in fixed start-date projects. But the SNET and FNET constraints are flexible in fixed start-date projects.
In a fixed finish-date project, duration inflation in successor tasks tends to push predecessor tasks to earlier dates. Constraints that prohibit predecessor tasks from being rescheduled to earlier dates are therefore called inflexible constraints. Consequently, the SNET and FNET constraint types are called inflexible in fixed finish-date projects. But the SNLT and FNLT constraints are flexible in fixed finish-date projects.
Although the SNET and FNET constraints are flexible for the expansion of the fixed start-date schedule, they nevertheless create a barrier if you are attempting to compress the project's duration. To shorten the overall project, you must shorten the critical path, and if a task with one of these constraints is on the critical path, it can block your efforts. Although you might shorten the duration of its predecessors, an SNET or FNET task will not move to an earlier date, and the critical path will not be shortened .
Similarly, in fixed finish-date projects, the SNLT and FNLT constraints are called flexible because they don't inhibit the natural expansion of the project; however, they can block compression of the project duration.
If you change a project from fixed start date to fixed finish date, the ASAP constraint type for existing tasks is replaced with ALAP constraints; however, all new tasks are given the new default ALAP constraint type. Likewise, changing a fixed finish-date project to a fixed start-date project leaves the ALAP constraints unchanged, but new tasks are set to ASAP. Neither of these results affects the duration of the project, but some tasks are scheduled earlier or later than they could possibly be without affecting the start or finish of the project.
If you change a fixed start-date project to a fixed finish-date project, what were flexible SNET and FNET constraints become inflexible. Similarly, the flexible SNLT and FNLT constraints in a fixed finish-date project become inflexible if you switch to fixed start-date scheduling. If you change the project scheduling type, you should look for constraints that switched from flexible to inflexible and consider modifying them to avoid potential conflicts as the schedule changes.
If you decide to permanently change a project from fixed start date to fixed finish date (or vice versa) and want to change all the old default constraints to the new default (for example, to replace ASAP with ALAP), you can use Project's Replace command. For example, type As Soon As Possible in the Find What box, type As Late As Possible in the Replace With box, select the field Constraint Type in the Look in Field box, and select Equals in the Test box.
Unwittingly creating constraints is one of the most common mistakes made by novice users of Microsoft Project. Any time you type a date into the Start or Finish fields for a task, or drag the taskbar to a new date in the Gantt Chart view, Microsoft Project creates a constraint to honor that date. When you create a recurring task, Project also creates a constraint for each occurrence.
Fortunately, Project always makes these flexible constraints. Thus, if you type in the start date for a task in a fixed start-date project, Project changes the constraint type to SNET and places the date in the Constraint Date field. The task is then scheduled to start on the date you typed (even if its predecessors would allow it to be scheduled earlier), but it can be freely moved to later dates if its predecessors experience duration inflation. Similarly, in a fixed finish-date project, the flexible constraints SNLT and FNLT are supplied when you specify start or finish dates for tasks.
Some constraints also affect the critical path:
When a task has a constraint type other than ASAP or ALAP, Project displays an icon in the Indicators field of the Gantt Chart view. The icon looks like a calendar with either a blue or a red dot in the middle. A blue dot signifies a flexible constraint, and a red dot signifies an inflexible constraint. Table 6.3 summarizes the flexible/inflexible status for the eight constraint types in both fixed start-date and fixed finish-date projects and describes the indicators you see for them.
Table 6.3. Flexible and Inflexible Constraints and Their Indicators
Entering Task Constraints
As mentioned previously, if you enter a date in a task's Start or Finish field or drag the taskbar in the Gantt Chart view, you create a flexible constraint for the task. You can also create task constraints by using the Schedule Tasks Project Guide or by filling in the Constraint Type and Constraint Date fields in the Task Information dialog box. If you want to create or modify many task constraints, you might want to add the constraint fields to the Entry table or display the Task Details Form view, which makes the constraint fields available for editing.
Because creating inflexible constraints can affect a schedule so significantly, it's very important that you document why a constraint has been defined. You should always add an explanation to the Notes field to explain the purpose of the constraint. This is especially important information if you are sharing the project file with colleagues or if someone else takes over the project. It's also a valuable reminder if there is later a conflict that you must resolve.
When you type a constraint date, you can also include the time of day with the date. If you don't append the time of day, Project supplies one for you. Using the default values from the Calendar tab of the Options dialog box, Project appends the default start time for all constraint types that restrict the start of a task and the default end time for all constraints that restrict the finish of a task.
No matter which method you use for creating constraints, if you create an inflexible constraint, the Planning Wizard displays a warning. How to deal with that warning is covered at the end of this section.
Creating Constraints with the Schedule Tasks Project Guide
To add a constraint to a single task by using the Project Guide, click Task on the Project Guide toolbar and choose Set Deadlines and Constrain Tasks to display the deadline and constraint definition controls (see Figure 6.17). Select the task to be constrained, and then select the constraint type and enter the constraint date under the Constrain a Task section.
Figure 6.17. The quickest way to create constraints is to use the Schedule Tasks Project Guide.
Creating Constraints in the Task Information Dialog Box
To enter task constraints in the Task Information dialog box, follow these steps:
Creating Constraints in a Task Table
If you need to create or edit a number of constraints, you can display the Constraint Dates table in the Gantt Chart view (see Figure 6.19). This is also a good view to use when reviewing the constraints in a project. To display the Constraint Dates table and create a constraint, follow these steps:
Figure 6.19. You use the Constraint Dates table if you have many task constraints to create or review.
To return to the Entry table with its task fields, repeat step 2, but select Entry Table in the More Tables dialog box.
You can add the constraint fields to any task table. See "Creating a Modified Constraint Dates Table" in the "Project Extras" section at the end of this chapter.
Creating Constraints in the Task Details Form
The Task Details form provides easy access to the constraint fields. It is best used in the bottom pane with the Gantt Chart view or another task view in the top pane (see Figure 6.20). To enter task constraints in the Task Details form, first display the Gantt Chart view or other task view in the top pane and split the window. When the window is split, activate the bottom pane and choose View, More Views to display the More Views dialog box. Select Task Details Form from the Views list and click Apply. Right-click over the Task Details form and choose the Notes details for display so that you can document the reasons for the constraint.
Figure 6.20. You can use the Gantt Chart and Task Detail Form views together to see the constraint fields along with other task details.
You can select the task to be constrained in the top pane, or use the Previous and Next buttons in the bottom pane to scroll to the task. Then in the bottom pane, select the constraint type from the drop-down list in the Constraint box, and enter the constraint date and time in the Date field.
Responding to Warnings from the Planning Wizard
As mentioned previously, if you define an inflexible constraint for a task that has dependency links, you create a potential conflict between the requirements of the constraint and the requirements of the links. When you create an inflexible constraint, the Planning Wizard warns you that your action could create a problem either now or in the future and makes you confirm the action. The Planning Wizard displays the dialog box in Figure 6.21 to warn you and give you three options. You must select the third option to create an inflexible constraint.
Figure 6.21. The Planning Wizard alerts you when a constraint might cause a problem. This can prevent you from accidentally placing constraints you didn't intend.
If you confirm the creation of the inflexible constraint and the constraint creates an immediate conflict with the task's dependency links, the Planning Wizard displays another warning that requests you to confirm that you want to go ahead and create the conflict (see Figure 6.22).
Figure 6.22. If a constraint creates an immediate conflict, you are usually warned by this second Planning Wizard dialog box.
Your choices are to cancel (in which case the constraint will not be created) or to continue (in which case the constraint will be created and the scheduling conflict will exist). Again, you must choose the Continue option before you click OK to actually create the constraint.
Project does not display the second warning if you have deselected the Tasks Will Always Honor Their Constraint Dates check box on the Schedule tab of the Options dialog box (which is explained in the next section, "Deciding to Honor Links or Honor Constraints").
The Planning Wizard warning in Figure 6.22 is also displayed by any other action that causes a constraint date to be in conflict with a dependency link. You see it, for example, if you create new links or increase the duration of a predecessor task so much that the constraint date becomes a barrier.
The Planning Wizard warning that a constraint conflict has been identified includes a task ID number to help you troubleshoot the conflict (refer to Figure 6.22). The ID number is usually the ID for the predecessor to the task that has an inflexible constraint. (In a fixed finish-date project, it would be the successor task's ID.) However, in some instances the ID number is for the constrained task itself. Thus, in Figure 6.22 the message identifies Task 2, and that is the predecessor to the task that is being given an inflexible constraint.
If you see this warning from the Planning Wizard and choose to continue and allow the conflict to be created, you should make a note of the task ID number because you will not see this message again and you need to do something to resolve the conflict. (For ways to find and resolve constraint conflicts, see the sections "Finding and Reviewing Tasks That Have Constraints" and "Resolving Conflicts Caused by Constraints," later in this chapter.)
Deciding to Honor Links or Honor Constraints
As mentioned earlier in the chapter, in the section "Understanding the Types of Constraints," when you define an inflexible constraint for a task, it might be impossible for Project to honor both the constraint and one or more links that you have defined for the task. When this type of conflict arises, Project's default scheduling method is to honor the constraint definition and ignore the link definition, as shown in Scenario B in Figure 6.16. When Project honors inflexible constraint dates, the inflexible constraints are called hard constraints. You can change Project's default behavior and force it to honor a task's links instead of its constraint by choosing Tools, Options, and then clicking the Schedule tab and clearing the check box labeled Tasks Will Always Honor Their Constraint Dates (see Figure 6.23). With this change, the inflexible constraints are soft constraints.
Figure 6.23. You can choose to make inflexible constraints soft constraints by clearing the Tasks Will Always Honor Their Constraint Dates check box.
In Figure 6.24 another set of tasks, Scenario C, is added to those from Figure 6.16 to show how Project schedules soft constraints to honor their links instead of their constraint dates.
Figure 6.24. Scenario C shows Project honoring links instead of constraint dates.
In Scenario A, there is no constraint conflict. In Scenario B, the Product Ready for Delivery milestone is a hard constraint and is scheduled to honor its constraint date (as indicated by the dashed line on March 10, 2004). In Scenario C, a soft constraint is scheduled to honor its link; therefore, it falls on the day after the constraint date.
Notice the Missed Constraint icon in the Indicator column in Scenario C. This indicator tells you that a task's schedule violates its constraint date. The constrained tasks in Scenarios A and B have the standard Inflexible Constraint indicator. There is nothing special to flag the conflict between the constraint and the link in Scenario B. The Missed Constraint indicator is the only flag that Project provides to identify constraint conflicts, and it appears only if you have deselected Tasks Will Always Honor Their Constraint Dates.
If you go back into the Options dialog box and select the Tasks Will Always Honor Their Constraint Dates check box again (in other words, turn soft constraints into hard constraints again), the existence of any existing constraint conflicts in the project causes Project to display the warning shown in Figure 6.25. You should make a note of the task identified at the start of this message so that you can find the tasks involved in the conflict and resolve the issue.
Figure 6.25. Forcing Project to honor constraint dates when there are already constraint conflicts produces this warning.
If all the links and constraint definitions are both appropriate and necessary to the project, it is best to use soft constraints (that is, to have tasks honor their links), for the following reasons:
Based on these two points, I recommend that you clear the Tasks Will Always Honor Their Constraint Dates check box as described previously and make it the default for all your new projects by clicking the Set as Default button, as shown in Figure 6.23. However, be aware that doing this means that you no longer get the warning shown in Figure 6.22 when you create a conflict between links and constraints. In this case, you have to diligently search for them, as described in the next section.
Finding and Reviewing Tasks That Have Constraints
Just as it is important to double-check the task sequencing links before committing to a project schedule, you should also review all the task constraints to be sure they are warranted and correctly defined. At the very least, you should attempt to identify any constraint conflicts and resolve them, or your project schedule will be unrealistic .
To review the constraint conflicts, disable Tasks Will Always Honor Their Constraint Dates on the Schedule tab of the Options dialog box, as described in the previous section. Then scroll down the list of tasks in the Gantt Chart view while you watch for the Missed Constraint indicator in the Indicators column. If your project is large, it will be easier if you also filter the task list for constrained tasks, as described next. When you find a task with the Missed Constraint indicator, follow the guidelines outlined in the section "Resolving Conflicts Caused by Constraints," later in this chapter.
If your project is scheduled from a fixed start date, you can use the Tasks with Fixed Dates filter to display the tasks that have a constraint other than ASAP, for both flexible and inflexible constraints. This filter also selects tasks that have an actual start date entered; so, if you apply this filter after you start tracking work on the project, it also selects tasks that have started. However, if you use it during the planning stage of a fixed start-date project, it selects just the tasks that have a nondefault constraint.
Project selects all tasks that do not have the constraint type ASAP (as well as those that have a start date entered). Project also displays the summary tasks for the selected tasks, which is helpful for remembering where the task falls in the outline in a large project. You can scroll through the filtered task list to easily review the constrained tasks.
A convenient view for reviewing constraints is the Gantt Chart view, with the Task Details Form view and the Notes field in the bottom pane, as described in the section "Entering Task Constraints," earlier in this chapter.
When you are finished using the filter, press the function key F3 to clear the filter or select All Tasks from the drop-down list on the Filter tool.
For help working with filters, see "Filtering the Task or Resource List," p. 472 .
You can create much more useful filters for finding inflexible constraints, for both fixed start-date and fixed finish-date projects. If you often work with fixed finish-date projects or want to be able to isolate constrained tasks after tracking has begun, or if you want to find scheduling conflicts, these filters are well worth adding to your Global template. You can find files with these filters already defined on the companion Web site for this book, at www.quehelp.com. Use the Inflexible Constraint Filters.MPP file. Follow the instructions in the note attached to the project summary task to copy the filters to your GLOBAL.MPT file.
Removing Task Constraints
To remove a task constraint, simply change the constraint type to ASAP (or ALAP in a fixed finish date project), using one of the methods discussed earlier for creating constraints.
If you want to return several tasks to an unconstrained status, select all the tasks you want to change. Click the Task Information tool to display the Multiple Task Information dialog box. Choose the Advanced tab and select As Soon As Possible or As Late As Possible from the Constraint Type drop-down list. When you click OK, the changes are made in all the selected tasks. To remove all constraints in the project, select a column heading in the task list table and choose the As Soon As Possible or As Late As Possible constraint type in the Task Information dialog box.
Resolving Conflicts Caused by Constraints
When you add an inflexible constraint to a linked task or link to a task that has an inflexible constraint, the Planning Wizard displays the potential conflict warning shown in Figure 6.21. If Project is honoring task constraints (the default) and the potential conflict becomes a reality, the Planning Wizard gives you the warning shown in Figure 6.22. This can happen when you complete the constraint definition, or the link definition, or it can happen later, as a result of changes in the schedule that push the linked task past its constraint. If Project is not honoring task constraints, you do not get the warning shown in Figure 6.22, but you see the Missed Constraint indicator that's displayed in Figure 6.24.
You can discontinue the display of Planning Wizard warnings by marking the Don't Tell Me About This Again check box. However, you might then be unaware of the conflict. You should leave the Planning Wizard active to warn you about scheduling conflicts.
As mentioned previously, if you see the Planning Wizard warning and choose to create the constraint conflict, you should make a note of the task ID number in the message because you'll not see this warning again. You need to examine that task and the task to which it is linked to find a way to resolve the conflict.
When you first open a project document, you can press F9 (the Calculate key) to force Project to display its most recent scheduling error message. The message you see should be similar to the one displayed in Figure 6.25. However, you see only one warning message like Figure 6.25, even if there are several constraint conflicts.
The three fundamental ways to resolve a constraint date scheduling conflict are as follows :
To learn how to change the duration of individual tasks, see "Shortening the Critical Path," p. 480 .
You must choose the course of action that makes the most sense in your project. Frequently, a careful review of the tasks, constraints, and task relationships reveals that new definitions are called for; conditions might have changed since the original definitions were entered and the definitions might now be more restrictive than they need to be.
Check to see whether a task note exists that might explain the need for the constraint. This might give you some guidance about how to resolve the conflict.
|< Day Day Up >|