Skip to main content
バージョンタグがご希望のコンテンツと一致しているかご確認ください。 または、最新バージョンをご利用ください。

並行開発

複数のチームが同じアプリケーションルールセットで作業する場合、チーム間の変更を調整することは困難です。 また、開発チームが並行してアプリケーションを構成する場合、ルールの変更により矛盾が発生する場合があります。 矛盾の頻繁な処理はプロジェクト全体の中断につながり、納品に遅れる可能性があります。

ブランチ

Pega Platform™はブランチを使用して、チームが分散環境で並行開発を管理できるようにします。 ブランチとは、急速に変更や開発が行われるレコードがあるルールセットのコンテナです。 ブランチに関連するルールセットはブランチルールセットと呼ばれます。

ブランチルールセット:

  • 別のルールセットに(から)基づきます(分岐しています)。
  • 関連するブランチで開発が進められているルールを含みます。

開発プロジェクトの規模にかかわらず、同時にアプリケーションのルールについて作業するチームが単一または複数のどちらの場合でもブランチが役立ちます。 たとえば、1つのチームの場合、3人のメンバーがある機能で作業し、他の2人のメンバーが別の機能で作業しても、お互いの開発に支障をきたす心配はありません。 複数のチームの場合、あるチームが他のチームの作業を上書きすることを心配しなくても、アプリケーションのルールを同時に作成するのにブランチが役立ちます。

また、機能間で完成までの時間が異なる場合、機能開発にブランチが役立ちます。 たとえば、2つの機能を同時に開発している場合、1つ目の機能が2つ目の機能より先に完成した場合、両方の機能が完成するまでチームが待機する必要がないことを保証するのにブランチが役立ちます。 2つ目の機能は不安定な状態であり、そのコードはメインルールセットに直接含まれるため、1つ目の機能専用のブランチで開発することで、未完成の機能に必要な努力を続けながらもアプリケーションの開発を継続することができます。 

Pega Platformアプリケーションを作成する際の一般的な戦略は、チームが開発する各機能に対してブランチを作成することです。 各機能にブランチを設定することで、他のチームに影響を与えることなく、孤立した空間(ブランチ)の中でチームが独立して機能を開発することができます。 たとえば、チームが画面のプロパティを変更するためのブランチと、UIセクションを変更するためのブランチを作成した場合を考えてみます。 変更が安定し、矛盾が解消され、すべての開発チームに適用されるように承認されるまで、当該変更は他のチームに影響を与えません。

以下のインタラクションで理解度をチェックしてください。

ブランチルールセットマネジメント

Pegaの各開発チームは独自のブランチとブランチルールセットを作成し、ルールセットを共有する機能の独立した開発を管理します。 他のチームの作業に影響を与えないよう、各チームはメインアプリケーションから構築された開発用アプリケーションでも作業を行います。 

開発アプリケーション

アプリケーション開発を加速するために、本番アプリケーションに構築されている開発アプリケーションを作成することで、分散型開発をサポートできます。 開発アプリケーションを作成することは必須ではありませんが、特に同じアプリケーションに取り組んでいる大規模または複数の開発チームに対して、中断されない開発プロセスを提供します。 開発者が別々のグループで作業しており、より分離された開発環境が必要な場合は、各チーム用のメインアプリケーション上に別のアプリケーションを構築することを検討してください。 その結果、クラスとルールセットの名前は変更されません。 

開発アプリケーションで、メインアプリケーションをビルトオンアプリケーションとして追加し、チームメンバーにアプリケーションへのアクセスを提供することができます。 このアクセスにより、さまざまなチームとチームメンバーは、エラーや競合を生み出すリスクを負うことなく、異なる機能を使用して同時に作業できるようになります。 各チームは、自分たちの開発アプリケーションで作業しているため、他のチームの作業を見ることはなく、そのために気が散ったり、矛盾が生じたりすることはありません。 たとえば、あるチームのメンバーが、同じ基本ルールを参照する2つの機能に対応するバグ修正を行い、別のチームがそのうちの1つの機能に関連する機能を構築することができます。 各チームは、ブランチ内の開発が完了した後、変更を簡単にマージできます。

補足: ブランチをマージする方法の詳細については、「Merging branches into target rulesets」を参照してください。

2つの開発チームが新しいアプリケーションの機能を開発していると考えてみましょう。 それぞれのチームが行った変更は、同じアプリケーションルールセットに影響を与えます。 ブランチルールセットを使って、各チームが並行してルールを開発するには、次のような手順を踏みます。

  1. メインアプリケーション上に構築したチームアプリケーションを作成します。
    ヒント: チームアプリケーションを作成するには、メインアプリケーションのコピーを保存することを検討しましょう。 これにより、クラスとルールセットの名前が変更されずに残ります。 
  2. チームアプリケーションに1つまたは複数の開発ブランチを作成します。
  3. 開発者にチームアプリケーションへのアクセスを許可します。
  4. 必要に応じてチームアプリケーションにブランチを作成します。
  5. ブランチを使用してルールを作成または更新します。
  6. ブランチとアプリケーションの間の矛盾完了を解消します。
  7. ブランチでの開発完了および安定後、各ブランチをチームアプリケーションのルールセットにマージします。
補足: 開発アプリケーション作成の詳細については、「Creating a development application」を参照してください。

ブランチとチームのアプリケーションとの間の矛盾を解消した後、チームはそのブランチの内容をメインのアプリケーションのルールセットにマージします。 下図は、メインアプリケーション、チームアプリケーション、およびそれぞれのチームブランチの構造を示しています。 

branches
補足: ブランチの詳細については、「Branches and branch rulesets」を参照してください。

ブランチの作成と使用

ブランチとブランチルールセットを使用することで、開発チームは自分のチームアプリケーションと開発ブランチを作成し、他の開発チームに影響を与えることなくアプリケーションに機能を実装します。 チームがルール間の矛盾を解消した後、ブランチから更新されたルールをメインのアプリケーションにマージする前に、どのルールが更新され、どのルールがチームアプリケーションに存在しないかを、システムが自動的に確認します。

次のシナリオは、あるチームがアプリケーションをアップデートする際に、もう一つのチームに影響を与えないようにするためのブランチについて説明しています。

AlphaチームとBetaチームの両方がEmployee Onboardingアプリケーションを更新しています。 アプリケーションのケースタイプの1つで、新入社員が自分の銀行口座へ給料が直接振り込まれるよう登録することができます。

Alphaチームは、ユーザーが口座振込のための銀行口座を特定する際のユーザーエクスペリエンスを向上させるためのユーザーストーリーを割り当てられました。 現在のシステムでは、ユーザーは銀行名とルーティング番号を入力する必要があり、誤入力による処理エラーが発生しています。 プロダクトオーナーは、適切なルーティング番号を自動的に提供するドロップダウンリストからユーザーが銀行を選択できるようにすることで、エラーを減らしたいと考えています。 同時に、最近の税法改正に伴い、Betaチームは従業員の源泉徴収税額の計算方法を更新することになりました。

各チームは独立して作業を行っていますが、どちらの機能もHRHRAppsHRAppsIntという同じルールセットのルールの変更が伴います。

次の画像で「+」アイコンをクリックすると、分岐ルールセットにより、Betaチームが行う作業に影響を与えることなく、AlphaチームがUIを更新する方法に関する詳しく説明が表示されます。

以下のインタラクションで理解度をチェックしてください。


このトピックは、下記のモジュールにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice