今回ご説明する範囲
①Salesforceの汎用的なプロジェクトの進め方の説明
※全体の流れと上手く進めるポイント、失敗するポイント
②Apex開発に関してのテスト環境の構築からリリースまでの流れの説明
③設計についての考え方(Apex開発設計書のサンプルベースで設計に必要な観点などをご説明予定
④テストが通らないところに関してのコードレビュー
Twitter:@creativecontentlabtokyo
質問・ご要望などはこちらへお願いします。
Salesforce導入プロジェクト全体の流れ
Salesforceの導入プロジェクトも一般的なシステム開発と同じような流れに沿ってプロジェクトを進めていくことがほとんどです。
step
1事前準備
契約と平行して、キックオフに向けてプロジェクト計画書を作成します。
プロジェクト計画以下の内容について計画を立てて、計画書に落とし込んでいきます。
- プロジェクト計画(PM)
- 提案・契約内容の再確認(精査)
- プロジェクトの目的、改善目標の明確化
- システム全体像、スコープ、開発方針の明確化
- マスタスケジュール策定
- WBSの作成
- 要員計画(外注依頼)
- QCD(品質・コスト・納期)計画
- コミュニケーション計画
- 開発環境計画
- セキュリティ、リスク計画
- 標準化計画
- プロジェクト管理に関する本サイトで提供している記事とテンプレート
注意ポイント
計画段階では、可能な限りリスクの洗い出しを行うこと。現実的な計画を立てることが非常に重要となります。以下のポイントには注意が必要です。
- 現実的に対応可能なマスタスケジュール:お客様の計画(ローンチ予定)に合わせて、逆算してマスタスケジュールを作成しますが、スタートが遅延したり、ボリュームが増えたりなどの原因によって、そもそも現実的でない計画の場合は、お客様と協議の上、スケジュールの見直しをすること
- WBSの作成:WBSの作成では、必ずレビューのフィードバック対応や、仕様変更・バグ対応などのバッファを盛り込んで作成するようにすること。内部のタスク管理を別で行う場合には、お客様提示よりも各タスクの終了期限は短く設定しておきます。※内部での遅延のリカバリーのためのバッファ
- 納品成果物については、可能であればキックオフ前にフォーマットを提示して、合意をしておきましょう。あとからお客様に追加の成果物作成を求められたりする場合や、フォーマットの粒度についてより詳細なものを作成するように要求されるとドキュメント作成の工数が予定を超過してしまう
コミュニケーション管理ツールは、バックログがおすすめ
-
参考Backlog(バックログ)を使ってタスクやプロジェクト管理を効率化しよう
Backlogのご紹介 今回は、クリエイティブコンテンツラボトウキョウがお勧めするお勧めのタスク管理ツールであるBacklogをご紹介いたします。 Backlogは単純にタスクを管理するだけではなく、 ...
続きを見る
準備段階で利用するテンプレート
- プロジェクト計画書(PPTテンプレート)サンプル・利用方法
- プロジェクト進捗報告書(PPTテンプレート)サンプル
- WBS(work-breakdown-structure)(Excelテンプレート)サンプル
- 各工程の成果物/納品物を定義する(Salesforce導入プロジェクト)
- 要員計画を立てる(山積み表・リソースヒストグラム)(Excelテンプレート)
- 会議体一覧(テンプレート)
- 会議議事録(Wordテンプレート)サンプル
- 成果物/納品物一覧(Excelテンプレート)サンプル
- プロジェクトマスタスケジュール(PPTテンプレート)
step
2要件定義工程
お客様によっては、要件定義はアジャイル的に進めたいという場合もありますが、本当のアジャイルで進めるのであれば、契約方法を含めて体制や進め方から検討する必要があります。
一般的には、Salesforceの導入では、プロトタイプを作成して画面や操作を確認しながら要件定義を進めていくやり方を推奨しています。
要件定義工程の流れとしては、以下のようになります。
・業務要件定義:事前にお客様業務についてのヒアリングを実施して、業務要求の洗い出し、組織構成(関連部門、権限)の確認、業務フローの整理
・システム要件定義:業務要件定義で整理した業務フローに基づき、各部門、担当者レベルの業務シナリオを作成。またシステム化要件に基づき、システム機能一覧を整理する。要件定義の会議体では、業務シナリオ(業務フロー)に沿って、作成したプロトタイプの画面やワークフローなどの動きを確認する。
・機能要件定義:プロトタイプを使った業務シナリオを確認しながら、機能要件を整理していきます。具体的にはシステム機能一覧を作成して、業務要求機能に対して、対応するシステム機能を定義し、機能の種類(画面、バッチ、ワークフロー、メールなど)を検討していきます。
・データモデルの検討も実施します。
・非機能要件:Salesforceの場合、サービス基盤アーキテクチャに関する非機能要件は限られた範囲の確認のみとなります。※マルチテナントのパブリッククラウドサービスのため、個別にリソースやセキュリティ基盤に対しての変更などはできないため。具体的には、個別に作成したプログラムの性能やセキュリティに対しての指標値の設定やテスト方法などを定義します。
詳細はこちらの記事を参考にしてください。
要件定義の注意ポイント
要件定義では、短い期間で要件定義書を作成する必要があるため、最終成果物(≒要件定義書)を作成するために必要なタスクを洗い出し、進め方を検討することが重要となります。終わってみて、なんとなく形が見えたけど、実際にどのような機能が作られるのか、見積できるのか、業務要件がすべて満たされているのかわからないということが無いようする必要があります。
- 要件定義書で作成する中身は契約時点で明確に定義しておくこと(システム機能一覧、オブジェクト項目定義書、画面一覧、帳票一覧、外部IF一覧、バッチ処理一覧、非機能要件一覧など)。各機能は一覧までとし、画面遷移や画面レイアウト、処理概要などは基本設計フェーズ以降で作成するのであればその旨は計画時点で明示しておき、お客さまと必ず合意しておくこと
- 成果物はあらかじめフォーマットを用意しておくと、作業工数を削減することができます。※サンプルもつけておくとメンバーへの説明工数を削減できます。
- お客様の業務内容に詳しいメンバーがいない場合(金融、保険、物流、小売りなど)、可能な限り早い段階で有識者を入れるか、お客様から業務内容をヒアリングしておき、業務体系図や業務フロー、業務説明書の作成に着手しておくこと。不明な用語や確認ポイントの洗い出しには時間がかかるため、要件定義の立ち上げに時間がかかってしまう。
- プロトタイプを使っての画面レイアウト確認や操作方法の検証については、要件定義工程でどこまで実施するか対象機能を明確にしておくこと。(全部やると予定以上の工数が掛かってしまう。
- セールスフォースの標準でできるか開発が必要か不明な機能については、早い段階で技術調査を実施しておくこと。(要件定義後に再見積もりの場合は、この結果次第で見積が変わってしまうため)
以下のような成果物一覧を作成して、事前に命名規約や書式、納品有無などを明記しておきます。※ダウンロードはこちら
要件定義工程の成果物サンプル
- 業務ヒアリングシート(Excelテンプレート)
- 要求仕様管理一覧(テンプレート)
- 業務フロー図・業務プロセス(Excelテンプレート)
- 業務機能階層図・業務機能一覧(Excelテンプレート)
- SFDC設定パラメータシート(組織・個人・権限)Excelテンプレート
- オブジェクト定義書(テンプレート)
- システム機能一覧(Excelテンプレート)
- システム機能要求に対するFIT&GAP分析一覧(Excelテンプレート)
- 帳票一覧(Excelテンプレート)
- セールスフォース用語集(Excelテンプレート)サンプル
step
2設計工程
Salesforceプロジェクトの場合、要件定義フェーズである程度基本設計まで実施することも多いです。プロジェクトの規模や進め方によりますが。
設計工程では、基本的にドキュメントベースのレビューと合わせて、実際の動きは、プロトタイプで確認しながら進めることが多いです。
Salesforceの設計では、作成する機能によって、設計書に記載する事項は概ね決まっています。
Apexトリガー処理:トリガー処理設計書
Apexバッチ処理:バッチ処理一覧、ジョブスケジュール、バッチ処理詳細設計
画面処理:画面一覧、画面定義書、画面遷移図など
外部インターフェース設計:
システム機能:
設計監理:
設計時の注意ポイント
設計時のポイントとしては、レビュー観点表を事前に作成しておくことが重要となります。内部のレビューでは、仕様ホルダーは、業務観点のレビューを実施し、開発者は主にシステム観点(技術面)でのレビューを実施します。お客様レビューでは、処理フローや処理概要ベースでのレビューを実施します。
- レビュー計画とレビュー観点表の作成と実施
- 設計にシステム要件がもれなく入っていることを確認するため仕様ホルダーによるレビューと、お客様のレビュー及び承認をいただくこと
- Salesforce特有のアーキテクチャや制約(ガバナ制限等)を理解したメンバーが技術面のレビューを必ず実施すること
- 品質計画として、設計書の不具合の発生率と傾向分析を実施し、品質が低いと判断される場合には個別の対策を実施すること
- 外部システムとの連携については、担当ベンダー様との合同レビューを実施すること
- 要件定義で決定した仕様の変更に関しては、メンバー自身で判断せずまずは仕様変更管理台帳へ起票し、PM管理層でお客様と協議の上対応方針を検討すること
step
3開発・テスト工程
開発工程では、設計書の内容に基づき、開発を進めてもらうため、管理者としては、進捗や課題管理の実施がメインとなります。仕様ホルダーは、開発の時点で発生した技術課題への対応方針の検討や実現できない仕様が発生した場合の対応方針をお客様と検討します。
また、開発と平行してテスト実施の準備を行います。Apex側の開発については、単体テストケース作成後に、単体テストケースに基づきApexのテストクラスとテストケースを作成して、自動テストを実施します。
Salesforceでは、カバレッジが組織全体で75%以上確保されていないと、リリースができない制約があります。テストでは実行できないようなコードが含まれている場合には、カバレッジ低下を招くため、事前にテスト方法やカバレッジの指標値など検討しておく必要があります。
単体テストも含めて結合テスト以降のテスト方針書を作成して、お客様や関係ベンダー様とテスト実施方針を検討します。
テストの進捗管理は、事前に計画を立てて、進捗率が自動的に算出できるように準備しておきます。
テスト進捗管理
step
4移行・リリース
テストやシステム移行でどの環境をどのように利用するかについては、事前にテスト計画や移行計画で検討しておきます。
環境は、工程ごとにどの環境をどの期間、だれがどのように使うかということが明確になっている必要があります。
工程 | 利用環境 | 種類 | 作業期間 | 用途 |
要件定義 | Sandbox(Dev1) | Developer | 22年1月から2月中旬 | プロトタイプの作成のため |
基本設計 | Sandbox(Dev1) | Developer | 22年2月中旬から4月中旬 | プロトタイプ検証のため |
開発・単体テスト | Sandbox(Dev1) | Developer | .. | 機能開発・単体テスト実施のため |
結合テスト | Sandbox(IT1) | Developer pro | .. | 結合テスト実施のため |
総合テスト | Sandbox(IT2) | Developer pro | .. | 総合テスト実施のため |
移行リハーサル | Sandbox(MGR1) | Partial Copy | .. | システム・データ移行リハーサル実施のため |
リリース | 本番 | Production | ... |
テスト実施環境について、以下の内容は理解しておく必要があります。
特にストレージ制限とコピーされる内容について注意が必要。DeveloperSandboxは、たくさん作成することができますが、ストレージが少ないため大量データのテストは実施できません。本番と同じデータを使って検証する場合には、FullSandboxを使う必要がありますが、更新間隔は29日のため、一度作成すると次に本番のデータをコピーするのは29日後となるため注意が必要です。
テストケースを作成する際は、Salesforce特有のガバナ制限に関するテストケースを追加することが重要
移行・リリースに関しては、移行計画書を作成しておきます。
移行手順書も作成しておき、事前に関係者とレビューを実施しておきます。
Pipelineを使って移行をすると、標準の変更セットで移行できないものも移行することができます。(公開されているメタデータ以外は手動で作業する必要はある)
移行が完了したら、報告書を作成して作業完了報告を行います。この報告をもって、お客様がリリース稼働判定を行います。
ダウンロード可能なコンテンツ一覧
-
参考ダウンロード可能なコンテンツ(サンプル・フォーマット)一覧
サポーターお問合せ・ご要望いただいているコンテンツも頑張って作成しているので、もうしばらくお待ちください ダウンロード可能なコンテンツ一覧 提供しているテンプレートと公開範囲は以下の通りとなっています ...
続きを見る