Sharing repositories between user profiles

To avoid conflicts when rules are shared between business users and developers, you must clearly establish which is the main repository: source code control (SCC) or the Decision Center database.

The interaction between the two user profiles is shown in the following figure. However, the choice of main repository depends on whether you are in the initial or later stages of project development:

Diagram shows a developer-centric scenario where one technical user is responsible for synchronizing the two repositories.
  • A developer-centric approach is better adapted for an initial development situation. Technical users synchronize their rules through SCC. One dedicated technical user publishes to Decision Center for testing, and synchronizes any changes between the two repositories (see Rule project items).
  • A business user-centric approach is better adapted for the later stages of project development, when the business object model stabilizes. You consider the Decision Center repository to be the source of truth and any Rule Designer developer copy in SCC as a temporary copy of the project.

Project lifecycle and the choice of main repository

In the early phases of a project, developers use Rule Designer to develop a business object model and other project artifacts. During this phase, you can maintain the project entirely in Rule Designer by using SCC to control multiuser updates as follows:

  • A technical user (Technical User 1) creates the project in Rule Designer and then commits it to SCC.

    Diagram shows Technical User 1 creating the project in Designer and commits to SCC
  • From that point, other developers can retrieve the project from SCC and start to work. All technical users work simultaneously by synchronizing through SCC.

    Diagram shows the technical users synchronizing through SCC.

As the business object model begins to stabilize, business users start authoring rules.

To support the business user, Technical User 1 publishes the project to Decision Center, which becomes the copy of record for rules:

  • Technical User 1 publishes to Decision Center.

    Diagram shows that when development is stable, Technical User 1 publishes to Decision Center
  • Business users can then work with the project in Decision Center to create and edit rules.

    Diagram shows the business users working in Decision Center

Control of the business object model now remains with the rule project in Rule Designer and developers must maintain it. To keep the developer view of the project in Rule Designer synchronized with the work of the business users, developers periodically update the rule project from Decision Center. Changes to the business object model are likewise published to Decision Center so that business users can work with the latest vocabulary.

Note:

When BOM changes affect the vocabulary that is used in existing rules, you must bring these rules into Rule Designer for refactoring (see Guidelines for synchronizing BOM changes).

You maintain synchronization as follows:

  • Technical User 1 periodically synchronizes the data for all the users.

    Diagram shows Technical User 1 synchronizing periodically.
  • All the business and technical users work simultaneously, but Technical User 1 has the added role of synchronizing between the two user profiles.

    Diagram shows the developer-centric scenario.

When you send the project to production, the Rule Designer copy of the project is essentially in an archive state, and not required for day-to-day management of the rules. Afterward, business users continue to author and modify rules, and to deploy them to production as the business cycle dictates. The Decision Center repository remains the source for auditing all the policy changes that are implemented by rules.

When you want to develop the application further, you create a new branch in the development SCC system. You then populate it with the rule portion of the project by creating a new copy of the production rule project from Decision Center. From this point, development starts again.