組織への変更を計画する
学習の目的
この単元を完了すると、次のことができるようになります。
- 組織開発モデルを使用して変更を管理する方法を説明する。
- 組織開発に必要なツールを特定する。
- ソース制御システムを使用する利点を説明する。
Zephyrus Relocation Services, Inc で Salesforce システム管理者を務める Calvin のご紹介
バージニア州フェアファクスにある移住サービス企業の Zephyrus Relocation Services で、Calvin Green はさまざまな IT 業務を担当しています。その 1 つが、同社の小規模ながら拡大を続ける営業チームのために Salesforce をカスタマイズすることです。本番組織の設定インターフェースを使用して、各種の素晴らしいダッシュボードやレポートを作成しています。
Zephyrus は、今後もより多くのオプションと価値を顧客に提供していきます。そのため、Calvin とチームは、営業チームにすべての新しく魅力的な製品の提供内容が周知されていることを確認する方法を必要としています。このような新しいコースやサービスについて営業チームが理解していなければ、クライアントに提供することはできません。
次のリリースに着手する前に、Calvin はこの成長に合わせて拡張できるプロセスや開発ライフサイクルを探しています。また、チームが成長するにつれ、Lightning Platform で同時に開発を行う複数のメンバーをサポートするプロセスを必要としています。
Calvin は開発チームとミーティングを行い、どのようにしたらチームの成長に合わせて生産性を向上できるかについて議論しています。これまで、次のような課題に直面してきました。
- 全員が行った変更の追跡
- すべての開発環境とテスト環境の常時同期
- エラーの発生や環境間の違いによる、変更セットの複数回の作成とリリース
新しいリードデベロッパーである Juan Garcia は、Salesforce DX ツールや開発モデルのいくつかについて調査した結果、現在直面している問題点の軽減に組織開発モデルが役立つと考えています。
組織開発に移行する
複数の開発者とシステム管理者が 1 つのリリースに関与することが考慮され、新しい開発モデルが必要であるとチームの意見が一致しました。そこで役立つのが組織開発、つまり 1) より高い柔軟性と拡張性、2) 変更の追跡と管理を行う新しい方法、3) 異なるリリース方法を提供するざまざまなツールを使用するモデルです。
Juan は、組織開発モデルでは、変更とプロジェクトファイルの保存にソース制御リポジトリが使用される点を気に入っています。ソースリポジトリは、環境を常時同期させけるという問題点を軽減するのに役立ちます。各リリースの変更を外部化することで、チームは、ソースリポジトリでは自分たちの提供するものが反映され、環境の違いに影響されないことがわかります。この一貫性により、開発、テスト、ステージングの各環境を進んでいく際のプロセスがより円滑になります。
すべての貢献者からの連動関係を確実に特定するために、チームはコンポーネントに対して行われた変更と [設定] UI を通じて組織で直接行われた変更を取得する変更追跡メカニズムを使用します。
また、Juan は VS Code 向け Salesforce 拡張機能を使用して、開発環境からメタデータを取得し、その後、変更した内容をソース制御システムに保存することも提案しています。変更がソース制御に保存されると、テストと本番環境へのリリースのための自動化プロセスを作成できます。
複数回のテストとインテグレーションのサイクルを経て、Juan はソース制御に保存されている変更を本番環境にリリースします。
リリース環境を準備する
チームはこれまで使用していたものと同じ開発環境とテスト環境にアクセスします。Juan のチームは、アプリケーションライフサイクルの各ステップで Sandbox を使用します。
- 開発とテスト: チームの各メンバーが独自の Developer Sandbox を持ち、割り当てられたカスタマイズを作成します。Developer Sandbox には本番データが含まれません。
- リリースのビルド: チームの各メンバーが、各自のカスタマイズを自身の Developer Sandbox から共有の Developer Pro Sandbox に移行して統合します。Developer Pro Sandbox には本番データが含まれませんが、テストデータを取り込むことができます。
- リリースのテスト: ユーザー受け入れテストでは、チームは Partial Sandbox を使用して本番組織 (本番データなし) の完全レプリカを作成します。
- リリース: 本番組織にリリースすると、チームは Full Sandbox を使用して、本番データを変更するリスクを冒すことなくユーザーをトレーニングできます。Full Sandbox には本番データのコピーが保存されます。
プロ並みに変更を管理する
Calvin とチームは、組織開発モデルに従って作業を開始するにあたり、すでに使い慣れている多数のツールを使用します。ですが、新しいツールをいくつか使用することで、特定のリリースフェーズで生産性を向上させることができます。このようなツールは、よりアジャイルなチーム開発モデルへ移行するために不可欠です。
Salesforce DX プロジェクト
Salesforce DX プロジェクトには、変更内容を構成するソースとファイルが含まれています。DX プロジェクトには固有のプロジェクト構造とソース形式があります。
ソースファイルに加えて、プロジェクトには設定ファイルの sfdx-project.json
があります。このファイルにはプロジェクト情報が含まれており、多くの開発タスクに Salesforce DX ツールを利用できるようになります。
DX プロジェクトの構造は次のようになっています。
リリースアーティファクト (マニフェストファイル)
変更をテストした後に、Juan はリリースアーティファクトを作成します。これは、リリースされるコンポーネントをリストしたマニフェストファイル (package.xml
) です。最初にリリースアーティファクトを使用してさまざまな Sandbox にリリースしてから、最後に本番組織にリリースします。変更はリリースされるまで有効になりません。
ソース制御システム
すべての変更はマージされ、Salesforce DX プロジェクトを含んだソース制御システムに保存されます。ソース管理システムには複数の利点があります。
- リアルタイムのコラボレーションにより、効率が向上し、意見をまとめやすくなります。
- 変更の上書きや作業内容の損失を心配することなく、チームで同じファイルを同時に作業できます
- 変更履歴により、だれがどの変更を行ったかがわかります。
- どのファイルも、以前のバージョンに戻すことができます。言うなれば、過去に戻って宇宙を破壊から救うことができる自分だけのタイムマシンを持っているようなものです。
- 作業内容を保存する際、コミットの説明を記載することで、作業の過去の状況を示すことができます。
Salesforce CLI
Salesforce CLI は、組織開発ライフサイクルのすべてのフェーズで使用できる強力なコマンドラインインターフェースです。開発、テスト、自動化のすべてのユースケースに単一のインターフェースを使用できるため、生産性が向上します。実行できる操作は、次のとおりです。
- Sandbox の承認 (ヘッドレスまたは Web フロー)
- DX プロジェクトの作成と管理
- テストデータのインポートとエクスポート
- メタデータの取得とリリース
- テストの実行と自動化
Visual Studio (VS) Code 向け Salesforce 拡張機能
VS Code 向け Salesforce 拡張機能は、Salesforce CLI と VS Code を基盤としています。また、この拡張機能は Lightning Platform でのカスタム開発用に作成された統合開発環境です。何よりも、Salesforce CLI コマンドをコマンドパレットまたはターミナルから直接実行できる点が優れています。開発チームは Salesforce Extension Pack をインストールすることで、以下の VS Code 拡張機能を使用できるようになります。
- 開発者向け Einstein — 自然言語の指示を使用してコード候補をすばやく生成できます。
- Salesforce CLI インテグレーション — Salesforce CLI と連携して、コア機能を提供します。
- Apex — Apex 言語サーバーを使用して、構文の強調表示やコード補完などの機能を提供します。
- Apex Replay Debugger — VS Code で Apex デバッグログから Apex 実行を再生できます。
- Lightning Web コンポーネント — Lightning Web コンポーネントをサポートします。
変更管理のメカニズム
開発チームは、チーム変更リスト、リリース実行リスト、プロジェクト管理システムなど、一般的な変更追跡ツールを導入することでメリットを得られます。
ツール | 説明 |
---|---|
変更リスト | デベロッパーはこのシンプルなリスト、表、またはスプレッドシートを使用して、独自の開発組織で行った変更を追跡することで、外部化すべき項目を把握できます。 |
リリース実行リスト | デベロッパーは、組織のリリースの前後で必要なすべての手動変更をリストします。このような変更には、たとえばプロファイルと権限セットの割り当てなど、リリースできないメタデータが含まれます。 |
プロジェクト管理ツール | アジャイルアクセラレーターや Jira などのツールは、チームがアジャイル開発手法を活用し、ビジネス要件、今後の作業、バグを追跡するのに役立ちます。また、プロジェクト管理ツールは、チームがスプリントを管理し、バックログ (今後の作業項目) をグルーミングするのにも役立ちます。 |
ツールをインストールする
Juan と Ella はどちらも、開発タスクとテストタスクを実行するために VS Code 向け Salesforce 拡張機能を使用し、ソース制御システムとして GitHub を使用します。2 人は次の手順を実行します。
- Salesforce CLI をインストールします。
- VS Code と Visual Studio Code 向け Salesforce 拡張機能をインストールします。
- Git をインストールします。
- Git を設定します。
- GitHub アカウントを作成します。
Ella は Visual Studio をこれまで使用したことがないため、ツールをインストールしてから、「クイックスタート: Salesforce 開発のための Visual Studio Code」を完了します。