LoginSignup
5
7

More than 3 years have passed since last update.

Development Lifecycle and Deployment デザイナーのポイント

Posted at

どんな試験?

Development Lifecycle and Deployment デザイナーは、Salesforceプラットフォームでの開発手法やリリース方法を適切に管理する為の知識と経験が求められる試験。

目指した背景

この資格自体には特に思いは無いけど、日本で20名前後のテクニカルアーキテクトが目標。
毎年アメリカで開催されるDreamforce前に世界中のアーキテクトが集まる会合に2年に1回招待されるらしい。(個人的には、これに参加したい。)

image.png

既にIdentity and Access ManagementとIntegration Architectureは取得済みだったので、
今回Development Lifecycle and Deploymentを取得したことで緑色の認定システムアーキテクトを取得できた。

試験ポイント

カバー範囲ごとにポイントを記載しておきます。

環境(17%)

・顧客の環境および要件に従って、適切な組織戦略を定義しながら、ビジネス、技術、アーキテクチャに関する考慮事項を評価する
・与えられた顧客シナリオに従って、適切な種類の Sandbox を利用する環境 (Sandbox) 戦略を定義する (複数プロジェクトのストリーム、トレーニング要件、ステージング、本番組織、ホットフィックスなど)
・複数プロジェクトのストリーム、トレーニング要件、ステージング、ホットフィックスを考慮に入れながら、Sandbox 戦略を特定のリリース計画に適用して対応付ける
・新規 Salesforce リリースに関する顧客シナリオに従って、リスクを軽減する適切な戦略を推奨する
・特定の要求が含まれる詳細な顧客環境シナリオに従って、要求を本番環境に直接組み込む場合の影響を説明する
・与えられた顧客シナリオに従って、ソース管理で分岐/バージョン/マージ設定を使用する方法を説明し、適切な戦略を推奨する

  • コードラインを理解しておくこと。
    特にgit workflowとかHotfix(緊急時即時リリースライン)とかDevelopラインなどの利用用途。
コードライン名 利用用途
Master リリースしたラインを全てマージする。
ここにコミットはしない。
Develop 開発者が主に使うブランチ。
Featureブランチで主要機能を別に開発して、
このブランチにマージされる。
Feature 主要機能を開発するブランチ。
Developからいくつも派生する。
Hotfix 緊急時対応用のブランチ。
即時不具合があればここを修正してリリース。
その後Masterへマージ。

 
- Developer、Developer Pro、PartialSandbox、Full Sandboxの利用用途、どのリリースの際に利用するかを理解しておく
- Sandbox名のDeveloperとDeveloper Edition(Enteprise Edition等の並び)は全く別々の事を示しているので注意

SandboxのHelp
EditionのHelp

名称 特徴 利用するリリース
Developer Sandbox 開発者一人一人の開発環境。 開発、単体テスト
Developer Pro Sandbox ・開発者複数人の開発環境用。
・例えば、マージしたコードを共有検証する。
開発、単体テスト
Partial Sandbox ・本番組織から一部データのみ切り出した組織。 システムテストや一部データ検証
Full Sandbox ・本番組織と同じ非機能要件の組織。
・データも本番のまま。
パフォーマンステストやUAT

 
- ソース管理の重要性について理解しておくこと

  • 成果物のバックアップ用途
  • ソースの履歴管理が出来る
  • 複数人で並行開発が可能

アプリケーション管理(15%)

・与えられたプロジェクトリスクと顧客要求に従って、さまざまな開発手法の利点とリスクを評価する方法を説明し、顧客環境に基づいて適切な手法を推奨する
・与えられた顧客シナリオに従って、適切なリリース管理戦略を説明して推奨する

  • ウォーターフォールとアジャイル開発手法のメリット、デメリットを理解しておくこと。
開発手法 特徴
ウォーターフォール ・最初に要件、ドキュメントをしっかり定義して後工程を実施する。
・先にある程度理解しておくことで不測自体が発生しない。
・要件の追加に弱い。
・予算/スケジュールがしっかり決まっている。
・他システム連携や外部認証が必要な場合に利用。
アジャイル ・小さい要件をスプリントで片づけていく。
・要件の変化に対応できる。
・要件の追加に弱い。
・予算/スケジュールが不透明な場合に利用。

テスト(10%)

・与えられた顧客シナリオに従って、適切なテスト手法を説明して推奨する

  • 単体テストやパフォーマンステストのテスト内容を把握しておくこと。
  • ストレステストはSalesforceプラットフォームでは実施してはダメなので覚えておくこと(=回答としては選べない)
  • Apexハンマーの役割を理解しておく
  • RunSpecifiedTestなどでテストクラスを指定してリリース時間を解消する。

ガバナンス(17%)

・与えられた顧客シナリオに従って、適切なガバナンスフレームワークを分析して推奨する

  • コンフリクトや修正箇所が分かり辛いなどあったら、設計・開発標準を作成する。
  • 後述のリスクのCOEやPMOの作成する規定やガイドラインを教育して同じような開発を行う。

割合が大きいが、一般的な開発倫理があれば消去法で分かるはず。(いや、真っ当な回答でいけるはず)

リスク(12%)

・顧客環境のリスクを把握して、適切な軽減戦略を明確にする

  • COE、PMOなどの役割の違いを理解しておくこと。
  • COEはビジネス要求の優先順位付けや横断的利害関係を解消する(プログラムマネジメント的な感じ)
    例えば、各プロジェクトで好き勝手にアプリ導入をしていたらCOEが責任をもって解決する。
  • PMOはプロジェクト単体のリスクや管理を支援する。

ジェネラリスト的な役割の多い日本では実現が難しいなぁ・・・。仕組みだけでは動かない。

変更セット(5%)

・与えられたシナリオに従って、適切なリリース戦略のコンポーネントとツールを比較対照して推奨する

  • 緊急時(Hotfix)やメジャーリリースで活用するリリース手法を理解しておく
リリース名 リリース手法
デイリーリリース 変更セット
マイナーリリース メタデータAPI
メジャーリリース メタデータAPI
  • Ant移行ツールなども知っておくこと。 destructivechanges.xmlは削除メタデータを記入、その他メタデータはpackage.xmlで管理されている事など。

正直、SFDXがリリースされてメタデータAPIやAnt移行ツールなどのリリース手法はSFDXに統一されていく感じがする。

メタデータAPI(10%)

・与えられたシナリオに従って、リリースにメタデータ API を使用する場合の機能、制限、考慮事項を説明する

継続的インテグレーション手法(8%)

・与えられた複雑な顧客シナリオ機能に従って、ソース管理、自動化テスト、リリースツールの適切な使用を特定し、関係するプロセスを明確にする能力を提示する

  • ビルド、テスト自動化によるメリットを理解しておく。
  • ビルド、テストの失敗成功を即座に見ることが出来る。とか。

手法ツール(3%)

・アジャイルツールを使用してアジャイル開発プロセスをサポートする利点を説明する

  • 例えば、JiraやBitbucketを入れてアジャイル手法で開発した場合の特徴を抑えておく
  • ベロシティやストーリーポイント、バックログを管理できる。
  • プロジェクト関係者に状況を共有出来る。
  • 開発者が後で自分の作業時間をチェック出来る。

パッケージの管理(3%)

・与えられたシナリオに従って、管理パッケージまたは未管理パッケージを使用する場合の使用事例と考慮事項を分析して説明する

  • 管理パッケージ、未管理パッケージの特徴を理解しておくこと
特徴 管理 未管理
用途 ISV SI
ソースの変更可否 変更不可 変更可能
アップグレード可能 可能 不可能
  • 管理パッケージは、コードを保護してアプリケーションを利用する際に利用する。(販売アプリ)
  • 未管理パッケージは、動くメタデータを一式まとめて圧縮して別の組織渡す際に利用する。
5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7