Configuration order in global configuration hierarchies

At some point in your product lifecycle, your team's global configuration hierarchies usually grow to the point where a visual inspection of the hierarchy cannot effectively show if it contains multiple configurations of the same component. This is the right time to run a component skew report. The report provides the order that configurations are used in the global configuration.

In a global configuration hierarchy with multiple configurations of the same component, Global Configuration Management selects the first configuration it encounters. That first configuration is the one that the global configuration hierarchy uses when following links and selecting the artifact versions to display in CLM applications.

However, after you run a component skew report and view the results, you might realize that the order is wrong. For example, a configuration that is second or third in the component skew results table Order column should be first. This means that you might need to remove the unnecessary configurations to move the right configuration up to the first position.

Example of Component Skew results table, showing order

Before discussing how order is determined, let's look at the following example to learn what can happen if you do not detect component skew in a large or deeply nested global configuration.

Example

The configuration lead for global configurations sees Engine Requirements M11 in his Engine Product global configuration. He does not run a component skew so does not see that Engine Requirements M10 exists higher in the hierarchy. He tells his requirements team to set their current configuration to the Engine Product stream to continue their work in their Requirements Management (RM) application. They mistakenly work in Engine Requirements M10 because it is higher in the hierarchy. This is why detecting component skew and removing unnecessary configurations might be important.

As you can see in the example, an older configuration (Engine Requirements M10) is chosen over a newer configuration (Engine Requirements M11) if its physical placement is higher in the hierarchy than the newer one.

Now consider the following figure, which illustrates how Global Configuration Management considers order when there are multiple configurations in the same component. Depth is considered first, so in the following example, RM-stream-1 is the first configuration in the Order column. Siblings are considered second, so RM-stream-2 is second and RM-stream-3 is third in the Order column. As the example shows, a depth-first-search occurs (descend before going across).

Example of configuration ordering

Although multiple configurations in the same component are ordered, more than one configuration does not necessarily mean that something is wrong with the component. Sometimes it is correct to have multiple configurations in the same component, as the following figure shows.

Example of valid multiple configurations in the same component

The GC1 global configuration has two different configurations for the radio, which means that the team might use different versioned artifacts in RM. That might be necessary. With component-based development, the same component might be used by multiple parents (GC2 and GC3), but at different versions (the two radio streams). Therefore, the GC1 global configuration hierarchy reflects the needs of the product.

There are two ways to resolve a component skew order situation. One is to remove unnecessary configurations, which works for the Engine Product global configuration in the first example.

Removal does not work in this GC1 example because both radio streams are necessary. Instead, the configuration lead can manually reorder the global configuration hierarchy, nesting global configurations so that shared product components are in different parts of the tree, as the radio streams are in GC2 and GC3. RM users can then select GC2 or GC3 in their application to work in the appropriate configuration context.


video icon Watch videos

CLM playlist
Jazz.net channel
User Education channel

learn icon Learn more

CLM learning circle
Agile learning circle
Learning circles

ask icon Ask questions

Jazz.net forum
developerWorks forums

support icon Get support

Support Portal
Deployment wiki
Support blog