Workflow for global configurations

A configuration is a set of versioned artifacts. Traditionally, artifacts are files that are managed by a single application, such as the Requirements Management (RM) application. Global configurations enable multiple applications to contribute artifacts to a larger hierarchy of configurations. Use the workflow to understand an overview about how to set up global configurations and use them.

You can use configurations for many purposes:
  • As a means to link between the appropriate versions of requirements, designs, and tests.
  • To work in parallel on multiple development streams.
  • To re-create a development environment from the past; for example, to branch and create a stream for a product fix.
  • To build a hierarchical component structure of a system that you are developing, while you manage versions and variants across product lines.
  • To represent a product or application as a set of components, including a deeply hierarchical structure. Within that structure, reuse components and subsystems in multiple product variants, for example, in a product line engineering scenario.

The following workflow is typical for a team that is using configurations to work in parallel on multiple development streams. When you work in parallel development streams, you can create and reuse configurations of artifact versions within or across applications that would be unrelated without the use of configurations. You can also start the design and analysis for the next release while developers use the correct artifact versions for the current release.

When you want to use a configuration to group artifacts from across applications, you create one or more components that represent physical or logical pieces of your system. You might create a configuration for a new delivery. Then, you might create a version of a component or you might create a brand new component. In either case, after your team delivers their changes to a stream, the new configuration becomes a part of that stream. As your team reaches a milestone, your team lead or build engineer can create a set of baselines to capture each milestone while the team continues working toward the next milestone.

Initial setup

The initial setup is typically performed by a configuration lead or the Jazz® administrator. To learn about the Configuration Lead role, see Role-based permissions for Global Configuration Management (GCM).

Global Configuration Management (GCM) is a Jazz application that is registered with a single Jazz Team Server. In a distributed environment, friend relationships can be set up across different servers, providing access to the application data.

  1. The team leads for the contributing IBM Engineering Lifecycle Management (ELM) applications set up streams where the teams develop requirements, tests, or designs.

    Before you can share configurations across IBM products, teams must set up streams in their ELM application. These are the configurations that are assembled by a global configuration.

    See Creating streams in configuration-enabled applications.

  2. In GCM, the configuration lead selects or creates a component on the Browse Components page.

    The component represents physical or logical pieces of your system and provides context to help you define a “family” of configurations, including baselines.

    See Creating a component to establish a work context.

    When you create a component, a baseline is created automatically, and an initial stream is created from the baseline.

  3. The configuration lead adds configurations to the stream.

    The stream is where you can group configurations contributed by this and other ELM applications, such as the RM, Quality Management (QM), Architecture Management (AM), and Change and Configuration Management (CCM) applications.

    From each application, choose the appropriate set of configurations (streams, change sets, baselines, snapshots) to contribute. For example, the RM application team contributes a requirements configuration that is named AMR (RM) 1.0. In addition, the QM team contributes a test configuration that is named AMR (QM) 1.0. The configuration lead groups those configurations into a global configuration for a new Automated Meter Reader configuration: AMR 1.0.

    Engineers that use global configurations now work in a context that has the appropriate artifact versions across the contributing applications. When engineers work in the applications or follow links between the applications, the artifact versions that are shown come from the contributing applications.

    For example, as part of the AMR 1.0 global configuration, the test artifacts in AMR (QM) 1.0 link to the requirements in AMR (RM) 1.0. If the requirements configuration is updated to AMR (RM) 2.0, then the links from AMR (QM) 1.0 reflect the links in the updated AMR (RM) 2.0. The test links are resolved in the new context.

    See Adding configurations to a stream.

  4. The configuration lead manages the configurations.

    Development teams are dynamic and change occurs for a variety of reasons. You might need to move, rename, remove, reorder, or replace configurations to keep up with changes.

    See Managing configurations.

  5. Create a baseline to save a milestone at critical points in a release.

    At certain points in a release cycle, your team reaches milestones, such as sprint dates or a beta release. A milestone is a good place to create a baseline. When you create a baseline, a new frozen version of the configuration is saved. The stream is not changed when you create a baseline from it, so your team can keep working in that stream.

    You can return to the baseline later, for example, if you need to troubleshoot a defect for a product that was released to customers. You can also use the baseline as a branch point in the future, for example, to create a product fix from a release milestone.

    See Creating a baseline to save a milestone.

Workflow for users

This workflow explains how to solve a development problem and create a related but different variant of a product or application. The workflow assumes that a team member completed the Initial setup.

  • Solve a product development problem by replacing a configuration.

    At some point in a release, an aspect of development might stop because of a problem. In the example in step 3 under "Initial Setup," imagine that AMR (RM) 2.0 has many problems. The project lead decides to return to AMR (RM) 1.0. In the global configuration, the configuration lead replaces AMR (RM) 2.0 with AMR (RM) 1.0. The links in AMR (QM) 1.0 resolve correctly.

    See "Replace a configuration" in Managing configurations.

  • Privately test one or more insulated changes in a personal stream before delivering them to a shared stream.

    Sometimes you need to test your changes to configurations and change sets privately. A stream is usually shared and used by many users. Changes to a shared stream are immediately visible to all users, whereas a personal stream is insulated.

    Use a personal stream to add a change set created in the RM application as an insulated addition to a shared stream. To learn more about personal streams, see Working with personal streams in the GCM application.

    See Creating change sets in the RM application. If you create multiple change sets in the RM application, see Working with multiple RM change sets in personal streams.

  • Branch to create a variant of a physical product or software application.

    This action creates a modifiable duplicate of the baseline, which you can then change by adding, removing, or replacing configurations.

    For details, see Creating a variant by branching.