Slide 1

Slide 1 text

Salesforceの アプリケーションライフサイクル管理 認定 Development Lifecycle and Deployment デザイナー 2020/09/11(金) Salesforce Architects Meetup Osaka#05

Slide 2

Slide 2 text

今回の対象: 認定 Development Lifecycle and Deployment デザイナー 本日の トピック 2

Slide 3

Slide 3 text

今回の対象: 認定 Development Lifecycle and Deployment デザイナー http://tandc.salesforce.com/credentials 3

Slide 4

Slide 4 text

認定 Development Lifecycle and Deployment デザイナー に求められるスキル・知識 4 Spring ’20 試験ガイドより

Slide 5

Slide 5 text

試験範囲と出題割合 5 ALMと呼びます

Slide 6

Slide 6 text

アプリケーションライフサイクル 管理

Slide 7

Slide 7 text

環境 7 [出典] https://wilsonmar.github.io/salesforce-dx/ 環境 開発 (Developement) 結合+品質保証 (Integration&QA) ユーザ受入テスト (UAT) ステージング (Staging) スクラッチ 組織 /Sandbox スクラッチ組織 Developer/Develope r Pro Sandbox Partial Copy Sandbox Full Sandbox データ制限 200MB 200MB/1GB 5GB 本番と同じ リフレッ シュ 任意 1日 5日 29日 データ ー ー サンプルデータ 全データ

Slide 8

Slide 8 text

継続的インテグレーション(CI) 継続的デプロイ(CD) 開発プロセスの変遷 8 [出典] https://wilsonmar.github.io/salesforce-dx/ Dev SBX Dev SBX Dev SBX Dev Pro SBX Partial SBX Full SBX 本番 変 更 セ ッ ト 開 発 モ デ ル パ ッ ケ ー ジ 開 発 モ デ ル スク ラッチ 組織 スク ラッチ 組織 スク ラッチ 組織 Dev Pro SBX Partial SBX バージョン管理システム(VCS) 開発 結合&品質保証 ユーザ受入テスト ステージング テスト& マージ テスト& UAT テスト 継続的デリバリー(CD) 手動 自動

Slide 9

Slide 9 text

アプリケーションライフサイクル管理 9 [出典] trailhead - Release Management Patterns with Salesforce 解除済みパッケージ テスト環境: Partial & Full Sandbox 継続的デリバリー リリース自動化 継続的インテグレーション テスト自動化 開発環境: スクラッチ組織、Dev/Dev Pro Sandbox ビルド(アプリ、フロー、スキーマ、プロセス) とウィザード IDE、エディタ、言語 サービス 開発とインテグレーションのCLI サードパーティのエディタ 計画 開発 テスト& マージ テスト& UAT リリース • お客様の要件は複雑化し、素早い機能開発・リリース、品質確保が求められる • 常にデプロイできる状態を保つ

Slide 10

Slide 10 text

開発モデル 10 [出典] trailhead - Release Management Patterns with Salesforce 組織開発モデル パッケージ開発モデル コアアプリケーションのカスタマイズ Sales, Service等 組織に合わせた カスタムプラットフォームアプリケーショ ンの作成 ✓ メタデータAPIで多くのメタデータを扱える ✓ リリースの戻しが困難 ✓ Source of Truth ✓ パッケージ以外で適用した変更を必ずVCSに

Slide 11

Slide 11 text

パッケージ開発モデル 11 [出典] trailhead - Release Management Patterns with Salesforce コード 開発+単体テスト マージ&テスト 結合+品質保証 テスト&ユーザ受入テスト UAT+Staging リリース トレーニング+本番 スクラッチ組織 スクラッチ組織 Partial/Full Sandbox Full Sandbox Prod VS Code等 Salesforce CLI & CI/CD バージョン管理システム(VCS) source:push/source:pull package:install

Slide 12

Slide 12 text

ブレイクタイム 12 [出典] https://note.com/09198301/n/n15622717851f 1. Salesforce CLIを業務で使っている方はどれくらいいますか? 2. スクラッチ組織で開発されている方はいますか? 3. パッケージ開発モデルでアプリケーションライフサイクル管理を されている方はいますか?

Slide 13

Slide 13 text

Salesforceメジャーリリース 13 リリース当日 2020年 10月18日 Winter ’21までのおおまかなスケジュール 5~6週間前 2020年 9月12日 5:00~ 約8~10週間前 2020年 8月22日 ※各リリースによってスケジュールが前後することがあります Sandbox プレビュー期間 Sandbox プレビュー参加対応期間

Slide 14

Slide 14 text

ガバナンス 14 [出典] Hands-on Activities: Development Lifecycle and Deployment 考慮すべきこと 1. アプリケーションライフサイクル管理に関与する主要な個人/ロールは誰 ですか? 2. 各個人が果たすロールは何ですか? 3. 各ロールにはどのような責任がありますか? 4. 組織の目標に向けて、さまざまな利害関係者をどのように調整します か? 5. リリース管理の有効性を測定するには、どのKPIが重要ですか? 6. ロール/責任の調整はどのように追跡および測定されますか? 7. ロール/責任のマトリックスは文書化されていますか? それは正式なプ ロセスですか? 8. 各ロールに監査とコンプライアンスの要件はありますか?

Slide 15

Slide 15 text

ガバナンス 15 [出典] Hands-on Activities: Development Lifecycle and Deployment センターオブエクセレンス(CoE):リリース管理の主要なロール/責任 一般的なSalesforceのリリース管理 CoE エグゼクティブスポンサー(プロジェクト最終権限者) プロジェクトチーム リ リ ー ス ( プ ロ ジ ェ ク ト 管 理 ) 業 務 ス ク ラ ム チ ー ム ア ー キ テ ク ト 導 入 ・ ト レ ー ニ ン グ サ ポ ー ト

Slide 16

Slide 16 text

ガバナンス 16 [出典] https://it-trend.jp/project_management/article/33-0049 変更管理委員会(CCB):プロジェクト計画変更の要求を承認棄却する • プロジェクトの変更に関して正しい判断を行い、変更を決定 • プロジェクトは計画通りに進むとは限らないため、失敗を防ぐためには不可欠な 組織 • 変更管理プロセス 1. 変更提案の受理 2. 評価、変更提案の回答 • 変更申請は必ず文書化しておく

Slide 17

Slide 17 text

ガバナンス 17 [出典] http://kb.mit.edu/confluence/pages/viewpage.action?pageId=155261497, https://hub.appirio.jp/tech-blog/architecture-review-board アーキテクチャレビューボード(ARB):アーキテクチャ全体に関する 戦略を審査・承認、整合性を担保する <目的> • カスタマイズが事業目標や技術戦略と矛盾していないか • 機能の衝突や重複が発生していないか • 共通のデザインパターンや開発標準の活用が行われているか • 技術的負債となる設計や実装が行われていないか <主な登場人物> • プロジェクトチーム、アーキテクチャチーム、ARB <ARBに必要なもの> • 意思決定(アーキテクチャロードマップの策定、設計原則やベストプラクティスを確立、ソ リューションの評価など) • 継続的な活動(技術的な実現可能性調査、ビジネスに役立つ新しいテクノロジーの特定など)

Slide 18

Slide 18 text

ガバナンス 18 [出典] https://dev.classmethod.jp/articles/raci/ RACI(レイシー):個人やチームに割り当てられた役割(責任、活動、 および職権)を定義 定義 意味 R 実行責任者(Responsible) タスクを実行することに責任を持つ A 説明責任者(Accountable) 顧客や社内のトップマネジメント(経営陣)など、誰かから聞かれ たら、タスクの進捗や状況(結果)がどのようになっているかを説 明することに責任を持つ 説明できる=いわゆる管理者的な人と考える C 協議先(Consulted) タスク実行を支援するアドバイスなどを行う I 報告先(Informed) タスクの進捗や状況(結果)の最新情報を受け取る ※CとIの違いは、以下のとおりです。 タスク実行前、実行中に相談する相手:C タスク実行後に報告する相手:I

Slide 19

Slide 19 text

ア ク テ ィ ビ テ ィ ロール ガバナンス 19 [出典] https://curious-sdmlab.com/ram-qy22-yw3/ RACI(レイシー)マトリクスの例 スポンサー プロジェクト マネージャー 開発者 アナリスト プロジェクトの立ち上げ C R/A プロジェクト計画策定 A R/A C C 要件定義 I A R C ソフトウェア開発 I A R C ソフトウェアテスト I A C R ソフトウェア導入 C A C R

Slide 20

Slide 20 text

デモ

Slide 21

Slide 21 text

デモ概要 21 コード 開発+単体テスト マージ&テスト 結合+品質保証 スクラッチ組織 Trailhead Playground環境 VS Code Salesforce CLI バージョン管理システム(VCS) ① ② ③ ④ ✓ 事前準備(Dev Hub、ロック解除済み パッケージと第二世代管理パッケージ を有効化) ① Aさんでスクラッチ組織作成。ブラン チで作業。 ② Bさんでスクラッチ組織作成。ブラン チで作業。 ③ Aさん、Bさんの作業をマージ。 ④ パッケージを作成。パッケージバー ジョンを作成。パッケージをインス トール。