SlideShare una empresa de Scribd logo
1 de 31
Salesforce World Tour Tokyo 2017
Salesforce DX 〜Salesforce開発にも継続的デリバリーを〜
2017/9/27
About me
Akira Kuratani / 倉谷 彰
TeamSpirit Inc.
Architect
@a_kuratani
Podcast(migration.fm)
ハッシュダグ:#migrationfm
Winter‘17
「毎日の業務に必要な事務処理ツール」をひとつにまとめた
働き方改革プラットフォーム「TeamSpirit」シリーズで、
変化に挑戦する人と企業に貢献することを目指す企業です。
株式会社チームスピリット
勤怠管理
就業管理
経費精算
カレンダー
工数管理
電子稟議
SNS
ダッシュボード
マイナンバー管理
社員情報管理
シフト管理
プロジェクト
原価管理
株式会社チームスピリット
AppExchange Partner of the year2016
ISV GOLD Partner 2016(Global)
導入実績 Award
AppExchange アプリケーション AppExchange
5年で800社 10万ID突破
急成長を支える仕組みづくり
継続的デリバリーとは
ソースコード管理 ビルド ステージング プロダクション
継続的インテグレーション
継続的デリバリー
継続的デプロイ
→
自動デプロイ
✓
承認&デプロイ
🔍
静的解析・自動テスト
TeamSpiritを支える継続的インテグレーション
BitBucket
etc.
Jenkinsソースコード
静的解析
通知
ドキュメント生成
ユニットテスト
Slack
E2Eテスト
AWS EC2
Migration Tools
JUnit
ユニットテスト組織
Developer Edition
E2Eテスト組織
Developer Edition
Selenium Docker BrowserStack
DEMO
ここに至るまでの問題と対策
最初の問題
• リポジトリとパッケージ作成組織が不一致
リポジトリ
パッケージ作成組織
開発組織
開発組織
≠
≠
• ソースコード管理の一元化
• リポジトリからパッケージ作成組織にデプロイする
対策
リポジトリ
パッケージ作成組織
開発組織
開発組織
次に出てきた問題
• リリース直前に問題が発覚する
• デプロイエラー、テスト失敗、カバレッジ不足
リポジトリ
パッケージ作成組織
開発組織
開発組織
• Jenkinsを導入し、デプロイ・Apexテストを定期実行
対策
リポジトリ
パッケージ作成組織
開発組織
開発組織 開発組織
Jenkins
さらなる問題が…
• 終わらない回帰テスト…
機能数
2012年 2013年 2014年 2015年 2016年 2017年
• ブラウザを操作して自動テスト(GUIテスト自動化)
対策
開発組織
Jenkins
Docker
開発組織
開発組織
ローカル
BrowserStackSelenium
Selenium
次のステップ
• コード品質を上げたい
• コーディングスタイルの不統一
• セキュリティ脆弱性
• ドキュメントの作成が面倒
• 静的解析
• Force.com Security Source Code Scanner自動化
対策
有償化の連絡!
• 静的解析
• Force.com Security Source Code Scanner自動化
• PMD Apex導入
• Jenkinsでもローカルでもチェック可能
対策
• ドキュメント自動生成
• ApexDoc
• メタデータ(XML)をHTMLに変換
SalesforceDXで変わる
継続的インテグレーション
Before SalesforceDX
BitBucket
etc.
Jenkinsソースコード
静的解析
通知
ドキュメント生成
ユニットテスト
Slack
E2Eテスト
AWS EC2
Migration Tools
JUnit
ユニットテスト組織
Developer Edition
E2Eテスト組織
Developer Edition
Selenium Docker BrowserStack
After SalesforceDX
BitBucket
etc.
Jenkinsソースコード
静的解析
通知
ドキュメント生成
ユニットテスト
Slack
E2Eテスト
AWS EC2
SalesforceDX CLI Scratch
Org
並行化
Selenium Docker BrowserStack
Before SalesforceDX
リポジトリ
master
feature/TS-145
feature/TS-137
feature/TS-143
自動テスト
Developer Edition
After SalesforceDX
master
feature/TS-145
feature/TS-137
feature/TS-143
自動テスト
Scratch Org
リポジトリ
DEMO
SalesforceDXで変わる
継続的デリバリー
継続的デリバリー(SI・自社開発の場合)
ソースコード管理 ビルド ステージング プロダクション
Sandbox組織
運用組織
デプロイ
デプロイ
変更セット
開発組織
デプロイ
継続的デリバリー(ISV/OEMの場合)
ソースコード管理 ビルド ステージング プロダクション
パッケージ
作成組織
ユーザ運用組織
デプロイ
プッシュアップグレード
開発組織
デプロイ
パッケージ
確認組織パッケージ作成
• SalesforceDXでモダンな開発スタイルに移行
• 継続的インテグレーション
• 継続的デリバリー
• すぐに始められるSalesforceDX
• PMD Apex による静的解析
• Apexテストの自動実行
まとめ
We’re
Hiring!
質問タイム
ありがとうございました

Más contenido relacionado

La actualidad más candente

Arkプロセスマイニング サービス概要資料.pptx
Arkプロセスマイニング サービス概要資料.pptx Arkプロセスマイニング サービス概要資料.pptx
Arkプロセスマイニング サービス概要資料.pptx
ssuserfe7eb1
 
自治体Web service 021114
自治体Web service 021114自治体Web service 021114
自治体Web service 021114
伸夫 森本
 
Spikechunsoft company profile 20150401_linkedin用
Spikechunsoft company profile 20150401_linkedin用Spikechunsoft company profile 20150401_linkedin用
Spikechunsoft company profile 20150401_linkedin用
隆明 後藤
 

La actualidad más candente (15)

BizReach x Marketo連携
BizReach x Marketo連携BizReach x Marketo連携
BizReach x Marketo連携
 
20210317 gsi webinar
20210317 gsi webinar20210317 gsi webinar
20210317 gsi webinar
 
Arkプロセスマイニング サービス概要資料.pptx
Arkプロセスマイニング サービス概要資料.pptx Arkプロセスマイニング サービス概要資料.pptx
Arkプロセスマイニング サービス概要資料.pptx
 
Atom info
Atom infoAtom info
Atom info
 
Loglass(ログラス)ってどんなサービス?
Loglass(ログラス)ってどんなサービス?Loglass(ログラス)ってどんなサービス?
Loglass(ログラス)ってどんなサービス?
 
Canly0614
Canly0614Canly0614
Canly0614
 
音声で楽しく業務効率化!TOKSOKで変わる請求業務
音声で楽しく業務効率化!TOKSOKで変わる請求業務音声で楽しく業務効率化!TOKSOKで変わる請求業務
音声で楽しく業務効率化!TOKSOKで変わる請求業務
 
Cloud Days Tokyo 2014
Cloud Days Tokyo 2014Cloud Days Tokyo 2014
Cloud Days Tokyo 2014
 
20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
20180423ChatWork APIユーザー会「ChatWork APIを使える人を増やす活動」
 
Inspire2017 SAP [BS SAP-1] 働き方改革を支えるマイクロソフトの新たな統合ソリューションMicrosoft 365 の可能性
Inspire2017 SAP [BS SAP-1] 働き方改革を支えるマイクロソフトの新たな統合ソリューションMicrosoft 365 の可能性Inspire2017 SAP [BS SAP-1] 働き方改革を支えるマイクロソフトの新たな統合ソリューションMicrosoft 365 の可能性
Inspire2017 SAP [BS SAP-1] 働き方改革を支えるマイクロソフトの新たな統合ソリューションMicrosoft 365 の可能性
 
2025年の崖とSAPの2025年問題に企業はどう対処すれば良いのか
2025年の崖とSAPの2025年問題に企業はどう対処すれば良いのか2025年の崖とSAPの2025年問題に企業はどう対処すれば良いのか
2025年の崖とSAPの2025年問題に企業はどう対処すれば良いのか
 
JPC2017 [D1-1] MS HoloLens と MS Azure で実現する製造業における経営の意思決定変革
JPC2017 [D1-1] MS HoloLens と MS Azure で実現する製造業における経営の意思決定変革JPC2017 [D1-1] MS HoloLens と MS Azure で実現する製造業における経営の意思決定変革
JPC2017 [D1-1] MS HoloLens と MS Azure で実現する製造業における経営の意思決定変革
 
自治体Web service 021114
自治体Web service 021114自治体Web service 021114
自治体Web service 021114
 
engineed サービス概要資料
engineed サービス概要資料engineed サービス概要資料
engineed サービス概要資料
 
Spikechunsoft company profile 20150401_linkedin用
Spikechunsoft company profile 20150401_linkedin用Spikechunsoft company profile 20150401_linkedin用
Spikechunsoft company profile 20150401_linkedin用
 

Similar a Salesforce World Tour Tokyo 2017 (SalesforceDX〜Salesforceにも継続的デリバリーを〜)

Similar a Salesforce World Tour Tokyo 2017 (SalesforceDX〜Salesforceにも継続的デリバリーを〜) (20)

Inspire2017 Sapporo [Keynote SAP] Where the People Meets to Inspire the Business
Inspire2017 Sapporo [Keynote SAP] Where the People Meets to Inspire the BusinessInspire2017 Sapporo [Keynote SAP] Where the People Meets to Inspire the Business
Inspire2017 Sapporo [Keynote SAP] Where the People Meets to Inspire the Business
 
20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)
 
Inspire2017 Fukuoka [Keynote FUK] Where the People Meets to Inspire the Business
Inspire2017 Fukuoka [Keynote FUK] Where the People Meets to Inspire the BusinessInspire2017 Fukuoka [Keynote FUK] Where the People Meets to Inspire the Business
Inspire2017 Fukuoka [Keynote FUK] Where the People Meets to Inspire the Business
 
Inspire2017 Osaka [Keynote OSK] Where the People Meets to Inspire the Business
Inspire2017 Osaka [Keynote OSK] Where the People Meets to Inspire the BusinessInspire2017 Osaka [Keynote OSK] Where the People Meets to Inspire the Business
Inspire2017 Osaka [Keynote OSK] Where the People Meets to Inspire the Business
 
Inspire2017 Nagoya [Keynote NAG] Where the People Meets to Inspire the Business
Inspire2017 Nagoya [Keynote NAG] Where the People Meets to Inspire the BusinessInspire2017 Nagoya [Keynote NAG] Where the People Meets to Inspire the Business
Inspire2017 Nagoya [Keynote NAG] Where the People Meets to Inspire the Business
 
【Japan Partner Conference 2019 基調講演】Industry Innovation による Society 5.0 の実現に向けて
【Japan Partner Conference 2019 基調講演】Industry Innovation による Society 5.0 の実現に向けて【Japan Partner Conference 2019 基調講演】Industry Innovation による Society 5.0 の実現に向けて
【Japan Partner Conference 2019 基調講演】Industry Innovation による Society 5.0 の実現に向けて
 
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法についてSalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
 
20171030 #miyagisap
20171030 #miyagisap20171030 #miyagisap
20171030 #miyagisap
 
JPC2018[C2]Microsoft 365 と相性抜群! 働き方改革時代にこそ生きる Surface ファミリー詳解
JPC2018[C2]Microsoft 365 と相性抜群! 働き方改革時代にこそ生きる Surface ファミリー詳解JPC2018[C2]Microsoft 365 と相性抜群! 働き方改革時代にこそ生きる Surface ファミリー詳解
JPC2018[C2]Microsoft 365 と相性抜群! 働き方改革時代にこそ生きる Surface ファミリー詳解
 
実績リユースマーケットアールソーシング
実績リユースマーケットアールソーシング実績リユースマーケットアールソーシング
実績リユースマーケットアールソーシング
 
JPC2018[Keynote]デジタルトランスフォーメーションはすでに生活・ビジネスの一部
JPC2018[Keynote]デジタルトランスフォーメーションはすでに生活・ビジネスの一部JPC2018[Keynote]デジタルトランスフォーメーションはすでに生活・ビジネスの一部
JPC2018[Keynote]デジタルトランスフォーメーションはすでに生活・ビジネスの一部
 
Inspire2017 Sapporo [PS SAP] Microsoft as a Transformation Platform
Inspire2017 Sapporo [PS SAP] Microsoft as a Transformation PlatformInspire2017 Sapporo [PS SAP] Microsoft as a Transformation Platform
Inspire2017 Sapporo [PS SAP] Microsoft as a Transformation Platform
 
Inspire2017 Osaka [PS OSK] Microsoft as a Transformation Platform
Inspire2017 Osaka [PS OSK]  Microsoft as a Transformation PlatformInspire2017 Osaka [PS OSK]  Microsoft as a Transformation Platform
Inspire2017 Osaka [PS OSK] Microsoft as a Transformation Platform
 
AppExchangeパートナー&デベロッパー第1部:20071205版
AppExchangeパートナー&デベロッパー第1部:20071205版AppExchangeパートナー&デベロッパー第1部:20071205版
AppExchangeパートナー&デベロッパー第1部:20071205版
 
サイボウズ式コミュニティとの関わり方
サイボウズ式コミュニティとの関わり方サイボウズ式コミュニティとの関わり方
サイボウズ式コミュニティとの関わり方
 
Jaws2017 災害支援クラウド活用 20170311
Jaws2017 災害支援クラウド活用 20170311Jaws2017 災害支援クラウド活用 20170311
Jaws2017 災害支援クラウド活用 20170311
 
2016 #meijisap - 明治大学理工学部情報科学科 情報システム論1講義「デジタルによるビジネスモデルの変革」
2016 #meijisap - 明治大学理工学部情報科学科 情報システム論1講義「デジタルによるビジネスモデルの変革」2016 #meijisap - 明治大学理工学部情報科学科 情報システム論1講義「デジタルによるビジネスモデルの変革」
2016 #meijisap - 明治大学理工学部情報科学科 情報システム論1講義「デジタルによるビジネスモデルの変革」
 
JPC2017 [Keynote] Where the People Meets to Inspire the Business
JPC2017 [Keynote] Where the People Meets to Inspire the BusinessJPC2017 [Keynote] Where the People Meets to Inspire the Business
JPC2017 [Keynote] Where the People Meets to Inspire the Business
 
就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof
 
Power Apps Startup Meeting@広島 モデル駆動型アプリを使用した 業務アプリの開発
Power Apps Startup Meeting@広島 モデル駆動型アプリを使用した 業務アプリの開発Power Apps Startup Meeting@広島 モデル駆動型アプリを使用した 業務アプリの開発
Power Apps Startup Meeting@広島 モデル駆動型アプリを使用した 業務アプリの開発
 

Más de Akira Kuratani

Más de Akira Kuratani (19)

[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス
[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス
[Japan Dreamin' 2022] エンジニアが学ぶカスタマーサクセス
 
Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス
Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティスJapan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス
Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス
 
静的解析、はじまったな
静的解析、はじまったな静的解析、はじまったな
静的解析、はじまったな
 
ReactとSeleniumの幸せな関係
ReactとSeleniumの幸せな関係ReactとSeleniumの幸せな関係
ReactとSeleniumの幸せな関係
 
AppExchange Growth Hacks - Aiming for the world -
AppExchange Growth Hacks - Aiming for the world -AppExchange Growth Hacks - Aiming for the world -
AppExchange Growth Hacks - Aiming for the world -
 
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
 
Salesforce dug [tokyo] meetup 2016 新年会
Salesforce dug [tokyo] meetup 2016 新年会Salesforce dug [tokyo] meetup 2016 新年会
Salesforce dug [tokyo] meetup 2016 新年会
 
Salesforce DUG meetup #10 MiniHack完全制覇の旅
Salesforce DUG meetup #10 MiniHack完全制覇の旅Salesforce DUG meetup #10 MiniHack完全制覇の旅
Salesforce DUG meetup #10 MiniHack完全制覇の旅
 
Salesforce DUG TOKYO Meetup #9
Salesforce DUG TOKYO Meetup #9Salesforce DUG TOKYO Meetup #9
Salesforce DUG TOKYO Meetup #9
 
Lightning componentの研究ポイントあるいは…
Lightning componentの研究ポイントあるいは…Lightning componentの研究ポイントあるいは…
Lightning componentの研究ポイントあるいは…
 
Salesforce DUG Meetup 2015 新年会
Salesforce DUG Meetup 2015 新年会Salesforce DUG Meetup 2015 新年会
Salesforce DUG Meetup 2015 新年会
 
Salesforce dugもくもく会 #1
Salesforce dugもくもく会 #1Salesforce dugもくもく会 #1
Salesforce dugもくもく会 #1
 
Salesforce dug meetup #6
Salesforce dug meetup #6Salesforce dug meetup #6
Salesforce dug meetup #6
 
Crowd hackchallenge2014 LT
Crowd hackchallenge2014 LTCrowd hackchallenge2014 LT
Crowd hackchallenge2014 LT
 
Salesforce dug meetup #5
Salesforce dug meetup #5Salesforce dug meetup #5
Salesforce dug meetup #5
 
Salesforce DUG meetup #4 LT
Salesforce DUG meetup #4 LTSalesforce DUG meetup #4 LT
Salesforce DUG meetup #4 LT
 
Force.com lightning talks cfj2012 by A.Kuratani
Force.com lightning talks cfj2012 by A.KurataniForce.com lightning talks cfj2012 by A.Kuratani
Force.com lightning talks cfj2012 by A.Kuratani
 
Force.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考える
Force.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考えるForce.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考える
Force.com developers meetup #2 夏サミ、そしてソーシャル・エンタープライズを考える
 
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
夏サミ2012 [A-2]ソーシャルプラットフォームを使った業務アプリ開発の現場(ソーシャル機能を取り入れたエンタープライズアプリケーション)
 

Último

Último (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

Salesforce World Tour Tokyo 2017 (SalesforceDX〜Salesforceにも継続的デリバリーを〜)

Notas del editor

  1. ご紹介いただきました株式会社チームスピリットの倉谷です。 会社ではアーキテクトをやっておりますが、プロダクト全般の品質を管理するQAリードもやっています。 Salesforce Developer Group Tokyoの運営メンバーをやっていたり、Podcastを配信していたりしたので、今年の春にSalesforce MVPに選んでいただきました。 このPodcastは、Salesforceエンジニア向けのPodcastになります。ご興味のある方はぜひ聴いていただければ嬉しいなぁと思います。 何か喋らせろ、という方は、こちらのツイッターアカウントまでご連絡いただければ、収録の日程など調整させていただきますので、よろしくお願いします。 発表資料やセッションの動画は後日セールスフォール・ドットコム様から公開していただけると思います。 ツイートはご自由にしていただいて構いませんので、ぜひツイートしてタイムラインを盛り上げてください。 ハッシュタグにPodcastで使っている「#migrationfm」をつけてもらえるとうれしいです。 今日は、QAエンジニアとして整備してきた継続的インテグレーションの弊社の事例、今後継続的デリバリーを実現するために何をすればよいか、それらがSalesforceDXによってどう変わるかをお話していきたいと思います。
  2. まず、会社についてご紹介させていただきます。 株式会社チームスピリットは、Salesforce Platform上でサービスを提供する会社です。 主に扱っている製品は、働き方改革プラットフォームである「TeamSpirit」になります。会社名と同じ製品名となりますが、製品は英語表記になります。 どういった製品か、というと、一般の社員の方々が日々業務で利用するような勤怠管理、経費精算、工数管理、電子稟議など事務処理ツールをひとつにまとめて提供しております。
  3. おかげさまで正式リリース後、5年で800社、10万IDの方々にご利用していただいております。 急成長することはビジネス面ではとてもよいことですが、開発現場にとってはハードなことも多くあります
  4. この急成長を支えるための仕組みづくりが必要でした この仕組みづくりでは開発プロセスや問合せの管理方法など多岐に渡りましたが、その一環として継続的デリバリーの前段階である継続的インテグレーションに取り組みました。
  5. 継続的デリバリーとは、具体的にはどういったことをやることでしょうか?
  6. ・自社組織でここまでできている  カバレッジレポート ・SalesforceDXを利用するとこんな感じになる
  7. 私が入社したときは、リポジトリとパッケージ作成組織のソースコードが一致していませんでした。 とりあえず触ってみようと思うと、パッケージをインストールするか、パッケージ作成組織からソースコードを取得して別の開発組織にデプロイする必要がありました。 まぁ、それまでは2人で作っていて、それでも困らなかったので仕方ないかもしれません。 そんな状態なので開発中のソースコードがある開発組織もソースコードが一致していないところがありました。 これから、開発エンジニアも増やしていこうとしていて、さすがにまずいので対策しました。
  8. 対策としては、ソースコード管理の一元化です。 具体的には、開発組織からパッケージ作成組織にデプロイしていたのをやめて、リポジトリからパッケージ作成組織にデプロイするように一元化しました。 必ずリポジトリにソースコードがコミットされるようになるので、パッケージ作成組織と開発環境を同じソースコードに保てるようになりました。 これで、やっと私もリポジトリから新しい開発組織を作成できるようになりました。 まぁ、すぐに人は増えることはなかったですが、私が一人でたくさん開発組織作ってました。 開発組織が正しく構築できるようになっていいこととしては、機能検証のスピードを上げることができることです。 開発組織が
  9. ・自社組織でここまでできている  カバレッジレポート ・SalesforceDXを利用するとこんな感じになる
  10. SalesforceDXで変わる継続的デリバリー。 今のところ、弊社では継続的デリバリーまではしていません。 このあたりがSalesforceDXでどう変わるのか、SI・自社開発の場合、ISV・OEMの場合で私の方から岡本さんに質問していきたいと思います。
  11. まず、SI・自社開発の場合です。 基本的な流れは変わらないと思っています。 SalesforceDXでソースコードをリポジトリで一元管理するようになるので、開発環境はリポジトリからソースコードを取得して、開発環境にソースコードをデプロイして構築します。 開発・テストが完了したら、ソースコードでSandbox組織にデプロイして、ステージング環境でのテストを実施します。 最後に、運用組織にリリースしますが、ここは直接デプロイするケースと変更セットからがあります。 一連の開発フローはこんな感じになると思いますが、SalesforceDXで変わることはありますか?
  12. 次に、私が主に興味のあるISV/OEMの場合です。 開発組織については特に変わらないと思います。 以降については、パッケージを作成する必要があるため、パッケージ作成組織にリポジトリからソースコードを取得してデプロイします。 ここで、ベータパッケージを作成し、ステージング環境にパッケージをインストールして、最終テストを実施します。 最後に、運用組織にリリースしますが、ここではお客様の運用組織にプッシュアップグレードします。 一連の作業はこんな感じになりますが、SalesforceDXで変わることはありますか? 特に、Packaging2.0 によって、SI・自社開発においても
  13. これで、最後になりますので、まとめです。 最近の開発スタイル、特にアジャイルな開発では継続的インテグレーションが一般化してきています。 今回は、弊社チームスピリットにおいて、Salesforce開発に継続的インテグレーションを導入していくまでに起きた問題とその対策についてご紹介しました。 これは、SalesforceDX以前の移行ツールだけでも実現できていることです。 後半では、SalesforceDXだからこそ実現できることについて言及しました。主には、Scratch Orgが導入されることでテストの並行化ができるようになります。 これによって、GitHub FlowなどのようなPull Requestをベースとした開発スタイルでマージ前に自動テストを実行できるようになります。 最後にすぐに始められることを紹介したいと思います。 まず、1点目です。 静的解析ツールとして、PMD Apexというツールをご紹介しました。 PMDは古くからあるツールで、様々なプログラミング言語で静的解析ができるツールです。 PMD ApexはそのApex版となります。 そのため、エコシステムが育っておりEclipse、Visual Studio Code、vimなどのIDEやエディタに組み込んで利用できます。 インラインで警告を出してくれるので、開発の手助けになると思います。 次に、2点目です。 ぜひ、試してもらいたいことはApexテストの自動実行です。タイムリーにApexテストの実行結果が通知されると開発作業自体がかなり楽になると思います。 ソースコードを一元管理する必要があったり、Jenkinsを立ち上げるかCIサービスを利用する必要がありますが、それ以上のメリットを感じられると思います。 ついでに、デモ環境などに継続的にデプロイしておいて、プロジェクトマネージャーやユーザーに触ってもらうこともできます。 開発期間を短縮することが求められているときなので、素早くフィードバックをもらえるように環境を準備することも大事になってくると思いますので、こちらも機会があれば試してみてください。
  14. 弊社チームスピリットでは、一緒に世界の働き方を改革する仲間を募集しています。 Reactでフロントエンドを作ってみたい、ApexでガッチリしたWebサービスのAPIを作ってみたい、という方はいらっしゃいませんか? まかない付きの勉強会「まかないてっく」など開催していますので一度来てみてください。
  15. 最後に時間が許す限り、質問をお受けしますが、いかがでしょうか?