Baseline usage considerations

A baseline is used as a snapshot of projects and tasks at a particular point. Before you create a baseline, consider how to use it.

The update operation uses the baseline as a way of saying "start from here." Therefore, if you use the standard process rules to set up the baseline to contain projects from multiple components or not to contain all the projects for a release, your baseline cannot be updated properly. Using the standard process rules in this way is supported, but you must customize process rules for it to work.

The next two examples show how to set up a baseline correctly, while the last example shows a baseline that was set up incorrectly. Using baselines correctly can improve performance when you update your projects.

The baseline is selected by its release; therefore, it is important to have projects with a consistent release in the baseline. The projects in the baseline are used as baseline projects for the projects in a project grouping. In the following table, notice that every project in the project grouping maps to a project in the baseline. This example shows a complete baseline.

Table 1. Baseline example 1
Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for CM/7.1 Integration Testing
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.1

In the following table, notice that two separate baselines are needed for a hierarchy with mixed components. This example shows correct baselines.

Table 2. Baseline example 2
Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for CM/7.1 Integration Testing
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.1
Baseline for TC/5.1 build 5678 <== Baseline Project Grouping for TC 5.2 Integration Testing
change_api-TC/5.1 <== Baseline project change_api-TC/5.2

If you create a single baseline for projects with mixed components, the projects cannot find a baseline project correctly if you are using standard process rules. In the following example, a subproject called change_api-TC/5.1 is included in a baseline for the CM/7.0 release.

The project cannot be used as a baseline project. The baseline it is a member of (for example, Baseline for CM/7.0 build 1234) cannot be selected by any project grouping (for example, Project Grouping for TC 5.2 Integration Testing) that might use the project as a baseline project. Additionally, tasks for both releases are included in the baseline.

If all of the tasks in the baseline are not used by all of the projects in the baseline, the tasks are not be subtracted by the project grouping during the update. Optimally, new project members selected by the update operation are gathered in this way:

Table 3. Baseline example 3
Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for
CM/7.1
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.1
change_api-TC/5.1    
missing <== Baseline Project Grouping for TC 5.2 Integration Testing
none <== Baseline project change_api-TC/5.2

Feedback