ローコード開発とコーディング開発の親和性が高いSalesforce
Salesforceのアプリケーション開発プラットフォーム「Customer 360 Platform」は顧客との繋がりや業務をサポートするためのアプリケーションを構築するプラットフォームだ。活用する顧客のデジタルトランスフォーメーションを推進するための信頼性や革新性が盛り込まれている。利用者にとって劇的にアプリケーションの開発スピードをあげることが可能となる。
従来のレガシープラットフォームでは、業務アプリケーション構築にはインフラ整備に多大な時間が費やされていた。一方、Salesforceではインフラにかかる労力が少なく、本質となるアプリケーション開発に注力することができる。
Salesforceではアプリケーションビルダーによるローコード(ノーコード)開発と、Salesforce CLIやVS Codeなどコーディング開発の親和性の高さも特徴となる。前者のローコード開発は、開発の専門家ではない人もアプリケーション開発に携わることができて、開発の民主化を実現し、人材不足解消と開発の高速化がもたらされる。
また2015年に発表されたSalesforce DX(Developer eXperience)は開発者のためのツールセットで、最新鋭の製品やツールを次々とリリースしている。Salesforceで、好みのエディタでモダンな開発サイクルを回すことができる。
モダンなアジャイル開発ができるSalesforce DXの4つの特徴
より技術的に踏み込んで見ていこう。Salesforce DXを使えばモダンなアジャイル開発を実践できる。それはビジネス要件をユーザーのストーリーに落とし込み、Jiraのような課題管理ツールにタスクを登録し、GitHubなどからソースコードをチェックアウトして、Eclipseなどの開発環境でコーディングしてGitHubにプッシュし、JenkinsなどでCI/CDプロセスがキックされ、最終的には本番環境にデプロイされる……という流れだ。
同様のことをSalesforceでやろうとすると、Salesforce DX以前では課題が生じていた。主に、開発実行環境となるDev Sandbox、メタデータの競合、パッケージング、運用自動化など。Salesforce DXの特徴と、これまでの課題をどう解決しているかを次に記す。
ソース主導開発
従来のSalesforceでは、メタデータ形式がVCSと相性が悪く差分の追跡に課題があった。一方Salesforce DXでは、ソース形式がバージョン管理システムを想定して設計されているため、diffツールで競合を解決できる。これにより適切なバージョン管理が可能になり、GitHubからのCI/CDを実現している。
ロック解除済みパッケージ
従来は変更セットを手動で作成して本番環境にリリースしていたため、手動であることと、履歴が確認できないことが課題となっていた。Salesforce DXではロック解除済みパッケージに変わり、パッケージ作成がCLIで自動化できて、過去リリースの履歴が追跡できるようになった。
Scratch Org
従来は開発者が実行環境となるSandboxを共有していたため、同じメタデータを修正してしまい予期せぬ競合やデグレが生じていた。Salesforce DXでは開発者ごとにScratch Orgを作成するため、バージョン管理システムで差分が検知できるようになり、競合を回避してマージできる。
Salesforce CLI
従来のIDEとなるEclipseベースのForce.comでは、Ant移行ツールでPackage.xmlが必要で、利用可能な操作に制限があった。しかし2019年10月で廃止となり、新たにSalesforce CLIが利用可能となった。Salesforce CLIでは、これまで制限されていたApexやSOQL実行などが可能となる。
Salesforce カスタマーサクセス統括本部 テクニカルアーキテクト 林良行氏は「Salesforce DXではCUIからの操作に加え、VSCのExtensionからもSandboxに接続できて、ApexやLightning Compornentの開発効率化が実現する」と話す。
既存の複雑なSalesforce組織でモダンなアジャイル開発をするためのコツ
ある製造業におけるSalesforce組織の統合とSalesforce DXの活用の実例を紹介しよう。その企業はグローバル企業であったため、これまでは国内外に複数のSalesforce組織が存在しており、ライセンスや機能で重複が生じていた。そこで、全世界で統一を図ることにした。
当初はSalesforce DXを活用し、パッケージ開発モデルを計画していた。しかし既存の組織にある依存関係があまりに複雑で、パッケージに分離することやScratch Orgへの一括移管ができず、手作業の移行でもエラーが多発した。
最終的にはパッケージでのリリースは断念し、ソース形式でSandboxへリリースするように軌道修正した。製造と単体テストをSandboxで実施し、各テスト環境への配布をパッケージではなく、メタデータそのままで配布する形にした。
この事例が示すように、複雑に入り組んだ既存環境ではSalesforce DXをフル活用したScratch Orgやパッケージ開発に移行しようとすると困難が生じることもある。とはいえ、「GitやSalesforce CLIでCI/CDを実現することは可能」とSalesforce カスタマーサクセス統括本部 プログラムアーキテクト・リード 神田貴博氏は言う。
Salesforce デベロッパーエバンジェリスト 田中宏樹氏は情報を入手する機会としてオンライン学習ツール「Trailhead」、オンラインコミュニティ「Trailblazer Community」、オフラインコミュニティ「Salesforce Trailblazers Event」を挙げた。どれも会員登録が必要なものの、無料なのでぜひ活用したい。同氏はさらに、最後にこのように述べてセッションを締めた。
「まだまだ新型コロナウィルスや自然災害の影響が続いております。Salesforceは皆さまと力を合わせて難局を乗り越えられるよう、新しい製品やサービスの提供を検討していきます。どうか皆さま、身の安全にお気を付けてお過ごしください。またビジネスや開発の場でお目にかかりましょう」