AI駆動Salesforce開発手法について考える
AI駆動Salesforce開発手法 – ウォーターフォール工程への実装ガイド
はじめに
AI技術の進化により、Salesforce開発の現場も大きく変わりつつあります。しかし、「AI開発」という言葉には注意が必要です。AIを使った開発とAIを提供する開発は全く異なる概念です。
本記事では、前者の「AIを使った開発」、つまりChat形式のAI(Claude、ChatGPTなど)とコーディングAI(GitHub Copilot、Cursorなど)を活用したSalesforce開発手法について、ウォーターフォール型プロジェクトへの適用を中心に解説します。
Agentforce導入の現状
2025年5月時点で、Agentforceは5,000件以上の契約を獲得しており、そのうち3,000件が有料契約、実際に本番環境で稼働しているのは800社程度です。これはAgentforce顧客全体の約10%が実運用フェーズに到達していることを示しています。
また、過去6ヶ月でAIエージェントの使用が233%増加し、8,000社以上の顧客がAgentforceの導入を契約したという報告もありますが、多くのパートナー企業は依然としてAgentforceを自信を持って販売・提供する方法が明確でないと感じている状況です。
このように、Agentforce(AIを提供する開発)はまだ初期段階であり、多くの企業が導入を検討している段階です。一方で、Chat AIやコーディングAI(AIを使った開発)は既に多くの開発現場で実用化が進んでいます。
AIを活用する前に:システムプロンプトの重要性
AIを開発業務に活用する際、最も重要なのは適切なシステムプロンプト(利用ガイドライン)を設定することです。誤った情報の生成、法令違反、倫理的問題を防ぐため、以下のようなシステムプロンプトを設定しましょう。
1. 基本的な倫理・コンプライアンスプロンプト
あなたはSalesforce開発をサポートするAIアシスタントです。以下のルールを厳守してください:
【必須遵守事項】
1. 法令違反となるコードや設計は絶対に提案しない
2. 個人情報保護法(GDPR、日本の個人情報保護法など)に違反する実装を提案しない
3. セキュリティ脆弱性を含むコードを生成しない(SQLインジェクション、XSS、CSRF等)
4. Salesforceのガバナンス制限(Governor Limits)を考慮した実装を提案する
5. 不確実な情報については必ず「確認が必要」と明示する
【情報の正確性】
- 古いAPI情報や非推奨機能について言及する際は、必ずその旨を明記する
- 最新のSalesforceドキュメントを参照することを推奨する
- 推測ではなく、確実な情報のみを提供する
2. セキュリティ特化プロンプト
【セキュリティ要件】
1. 認証・認可の実装では、Salesforceの共有設定とプロファイル・権限セットを適切に活用する
2. SOQL/SOSLクエリには必ずWITH SECURITY_ENFORCEDまたはUser Modeを使用する
3. 機密データの取り扱いでは、Platform Encryptionやマスキングの使用を検討する
4. 外部API連携では、Named Credentialを使用し、ハードコードされた認証情報を含めない
5. Lightning Web Component (LWC)では、XSS対策として適切なエスケープ処理を実装する
3. コード品質保証プロンプト
【コード品質基準】
1. Apexコードではトリガーハンドラパターンを使用し、ロジックをトリガーから分離する
2. 全てのApexクラスとメソッドに対して、最低75%以上のテストカバレッジを確保する
3. バルク処理を考慮し、ループ内でのSOQL/DMLを避ける
4. エラーハンドリングを適切に実装し、ユーザーフレンドリーなエラーメッセージを提供する
5. コードコメントは英語で記述し、複雑なロジックには必ず説明を付ける
4. Salesforceベストプラクティスプロンプト
【Salesforceベストプラクティス】
1. 設定ファーストアプローチ:可能な限り宣言的開発(フロー、プロセスビルダー)を優先する
2. カスタムメタデータタイプを活用し、ハードコーディングを避ける
3. プラットフォームイベントやChange Data Captureで疎結合なアーキテクチャを実現する
4. Lightning Design System (SLDS)を使用し、一貫性のあるUIを実装する
5. API制限を考慮し、バッチ処理やスケジュール可能Apexを適切に活用する
ウォーターフォール工程におけるAI活用マトリクス
以下の表は、各開発工程におけるAI活用の可能性を示しています。
| 工程 | AI活用可能度 | Chat AI活用例1 | Chat AI活用例2 | Chat AI活用例3 | コーディングAI活用例1 | コーディングAI活用例2 | PJ依存度 | 注意点 |
|---|---|---|---|---|---|---|---|---|
| 要件定義 | ◎ 高 | 要件の整理と構造化 | ユースケースの洗い出し | 質問リストの生成 | 要件トレーサビリティマトリクス生成 | ストーリーポイント見積もり補助 | 中 | ビジネスドメイン知識が不可欠、顧客との対話は必須 |
| 基本設計 | ◎ 高 | データモデル設計の提案 | アーキテクチャパターンの提案 | 設計書レビューとフィードバック | Mermaid記法での図表生成 | 設計書テンプレート自動生成 | 中 | Salesforceの制約理解が必要、既存システムとの整合性確認 |
| 詳細設計 | ○ 中〜高 | ロジックフローの整理 | エッジケースの洗い出し | API仕様書作成支援 | 詳細設計書からコードスケルトン生成 | テストケース仕様書の自動生成 | 高 | 細かい業務ロジックは人間の確認必須 |
| 開発 | ◎ 非常に高 | コードレビューとリファクタリング提案 | エラーメッセージの解析 | デバッグ支援 | Apex/LWCコード生成 | 定型コードの自動補完 | 低 | 生成コードの動作確認は必須、ガバナンス制限の考慮 |
| 単体テスト | ◎ 非常に高 | テストシナリオ作成 | 境界値分析 | テストデータ設計支援 | Apexテストクラスの自動生成 | モックオブジェクト生成 | 低 | テストカバレッジだけでなく品質を重視 |
| 内部結合/外部結合テスト | ○ 中 | 統合テストシナリオ作成 | システム間連携のテストケース設計 | 不具合分析とトリアージ支援 | テストデータ生成スクリプト作成 | 統合テスト用のMockクラス生成 | 高 | 実際のシステム構成知識が必要、外部システム仕様の理解が前提 |
| 総合テスト | △ 低〜中 | テスト計画書レビュー | 不具合傾向分析 | テスト報告書作成支援 | 自動テストスクリプト生成(Selenium等) | パフォーマンステストツール設定 | 高 | E2Eテストは人間の判断が重要、業務フロー全体の理解が必須 |
| 受入テスト | △ 低 | 受入基準の明確化支援 | テスト手順書作成 | ユーザーマニュアル作成支援 | – | – | 非常に高 | 顧客の主観的判断が中心、AI活用は補助的 |
| リリース | ○ 中 | リリースチェックリスト作成 | ロールバック手順書作成 | リリースノート生成 | デプロイスクリプト生成 | 変更セットの差分確認自動化 | 中 | 本番環境への影響を慎重に評価、最終確認は必ず人間が行う |
活用度の評価基準
- ◎ 非常に高/高: AIが大幅な効率化と品質向上を実現できる工程
- ○ 中: AIが有効だが、人間の専門知識が重要な工程
- △ 低: AIの活用は限定的で、人間の判断が中心となる工程
PJ依存度の説明
- 低: どのプロジェクトでも同様にAI活用可能
- 中: プロジェクトの性質により活用方法が変わる
- 高: プロジェクト固有の知識が必要で、AI活用には工夫が必要
- 非常に高: プロジェクト固有要素が強く、AI活用は補助的
各工程での具体的なAI活用例
要件定義でのAI活用
活用例1: 要件の構造化
プロンプト例:
「以下の顧客からのヒアリング内容を、機能要件と非機能要件に分類し、
優先度を付けて整理してください。また、不明確な点や追加確認が必要な
項目があれば指摘してください。
[ヒアリング内容]
...
活用例2: ユースケース図の作成支援
プロンプト例:
「営業担当者が商談情報を登録する業務について、主要なユースケースを
列挙し、Mermaid記法でユースケース図を作成してください。」
開発工程でのAI活用
活用例1: Apexトリガーの実装
プロンプト例:
「Accountオブジェクトに対して、以下の要件を満たすトリガーを実装してください:
- レコード作成時に業種(Industry)が未設定の場合、デフォルトで'その他'を設定
- レコード更新時に従業員数(NumberOfEmployees)が変更された場合、
関連するContactレコードのカスタム項目を更新
- バルク処理対応
- トリガーハンドラパターンを使用
- 適切なエラーハンドリングを含む
- テストクラスも合わせて作成
活用例2: Lightning Web Componentの実装
プロンプト例:
「取引先責任者(Contact)の一覧を表示するLWCを作成してください:
- データテーブル形式で表示
- 検索機能(名前、メールで検索可能)
- ページネーション(1ページ10件)
- SLDS準拠のデザイン
- エラーハンドリング
- アクセシビリティ対応
テスト工程でのAI活用
活用例: テストクラスの自動生成
プロンプト例:
「以下のApexクラスに対して、テストカバレッジ100%を達成する
テストクラスを作成してください:
- 正常系、異常系、境界値のテストケースを含む
- バルク処理のテストを含む
- テストデータはTest.loadData()を使用
- アサーションは具体的で意味のあるものにする
[Apexクラスのコード]
...
AIに任せられる業務レベルとリスク管理
AI活用において最も重要なのは、AIに任せられる業務レベルを正確に理解し、リスクがある業務は人間が担当するという原則です。以下、業務レベル別の分類とリスクを詳しく解説します。
AIの業務レベル分類マトリクス
| 業務レベル | 内容 | AI活用度 | 人間の関与 | リスク度 |
|---|---|---|---|---|
| Level 1: 定型・単純作業 | テンプレート生成、コード補完、ドキュメント整形 | ◎ 全面的に活用可 | 最終確認のみ | 低 |
| Level 2: パターン化された作業 | 標準的なCRUD実装、テストクラス生成、設計書作成 | ○ 積極的に活用可 | レビューと修正 | 中 |
| Level 3: 判断を伴う作業 | アーキテクチャ選定、複雑なロジック実装、パフォーマンスチューニング | △ 補助的に活用 | 主導的に関与 | 中〜高 |
| Level 4: 戦略的・創造的作業 | ビジネス要件定義、システム方針決定、セキュリティ設計 | × 活用不可 | 人間が主導 | 非常に高 |
AI活用における主要リスクカテゴリ
1. 技術的リスク
1-1. セキュリティ脆弱性の生成リスク
リスク内容:
- SQLインジェクションやXSS脆弱性を含むコードの生成
- 不適切な権限設定(Sharing設定の未考慮)
- 機密情報のハードコーディング
- セッション管理の不備
具体例:
// AIが生成する可能性がある危険なコード例
String query = 'SELECT Id FROM Account WHERE Name = \'' + userInput + '\'';
List<Account> accounts = Database.query(query); // SOQLインジェクションの危険性
対策:
- セキュリティレビューの徹底
- 静的コード解析ツール(PMD, Checkmarx)の活用
- WITH SECURITY_ENFORCEDの使用を必須化
1-2. ガバナンス制限違反リスク
リスク内容:
- SOQLクエリ数の超過(ループ内でのSOQL実行)
- ヒープサイズの超過
- CPU時間制限の超過
- DML操作数の超過
具体例:
// 危険なパターン:ループ内でのSOQL
for(Account acc : accountList) {
List<Contact> contacts = [SELECT Id FROM Contact WHERE AccountId = :acc.Id]; // NG
}
対策:
- バルク処理パターンの強制
- Governor Limitsを考慮したコードレビュー
- 性能テストの実施
1-3. 古い情報・非推奨機能の使用リスク
リスク内容:
- 非推奨APIの使用
- サポート終了予定の機能の実装
- 古いベストプラクティスの適用
対策:
- 最新のSalesforceリリースノートの確認
- 生成コードのバージョン確認
- Salesforce公式ドキュメントとの照合
2. ビジネスリスク
2-1. 要件誤解・仕様齟齬リスク
リスク内容:
- AIが要件を誤って解釈
- ビジネスロジックの欠落
- エッジケースの見落とし
- 業界特有の規制への非対応
具体例:
- 金融業界での利息計算ロジックの誤り
- 医療分野でのHIPAA準拠要件の見落とし
- 税務処理での地域特有ルールの未考慮
対策:
- 要件定義段階での人間による詳細確認
- ドメインエキスパートのレビュー
- プロトタイプによる早期検証
2-2. データ整合性リスク
リスク内容:
- 不適切なトランザクション制御
- データ整合性制約の見落とし
- ロールバック処理の不備
- 並行処理での競合未対応
対策:
- データベーストランザクションの明示的な管理
- Savepoint機能の活用
- ロック機構の適切な実装
3. コンプライアンスリスク
3-1. 個人情報保護法違反リスク
リスク内容:
- GDPR、個人情報保護法への非準拠
- 不適切なデータ保持期間
- 同意なしの個人データ処理
- データ越境移転の違法性
AIに絶対に任せてはいけない業務:
- 個人情報の取り扱い方針の決定
- データ保持・削除ポリシーの設計
- 同意取得プロセスの設計
対策:
- 法務部門との連携
- プライバシー影響評価(PIA)の実施
- データ分類とラベリングの徹底
3-2. ライセンス違反リスク
リスク内容:
- オープンソースライセンス違反のコード混入
- Salesforceライセンス規約違反
- サードパーティライブラリの不適切な使用
対策:
- 生成コードのライセンス確認
- コピーライト表示の確認
- 使用許諾条件の遵守
4. 運用リスク
4-1. 保守性低下リスク
リスク内容:
- 可読性の低いコード生成
- ドキュメント不足
- 命名規則の不統一
- 複雑すぎるロジック
対策:
- コーディング規約の徹底
- コードレビュープロセスの確立
- リファクタリングの実施
4-2. テスト不足リスク
リスク内容:
- 不十分なテストカバレッジ
- 形骸化したテストケース(アサーションの不足)
- 境界値テストの欠如
- 統合テストの不足
対策:
- テストカバレッジの数値目標設定(最低75%、理想は90%以上)
- 意味のあるアサーションの実装
- テストコードのレビュー
AIに絶対任せてはいけない業務一覧
以下の業務は人間が必ず主導する必要があります:
戦略・方針決定レベル
- システム全体のアーキテクチャ決定
- マルチテナント設計の採用判断
- オンプレミスvsクラウドの選択
- セキュリティポリシーの策定
- ビジネス要件の最終決定
- ステークホルダー間の利害調整
- 優先順位の決定
- 投資対効果の判断
- コンプライアンス判断
- 法令遵守の解釈
- 監査対応方針
- リスクアセスメント
機密・重要データの取り扱い
- 本番環境への直接操作
- 本番データの削除・更新
- 権限設定の変更
- リリース作業の実行
- 機密情報を含む実装
- 支払い処理ロジック
- 認証・認可メカニズム
- 暗号化キーの管理
顧客対応・契約
- 顧客との直接コミュニケーション
- 要件ヒアリング
- 仕様変更の合意
- 納期調整
リスク管理のためのチェックリスト
AI活用前に以下を確認してください:
実装前チェック
- ☐ 生成されるコードに機密情報が含まれないか
- ☐ セキュリティ要件が明確に定義されているか
- ☐ 法令・規制の制約を理解しているか
- ☐ プロジェクトのコーディング規約を確認したか
- ☐ エラーハンドリング要件が明確か
実装後チェック
- ☐ セキュリティレビューを実施したか
- ☐ 単体テストで十分なカバレッジを達成したか
- ☐ パフォーマンステストを実施したか
- ☐ コードレビューで第三者の確認を受けたか
- ☐ ドキュメントが適切に更新されたか
リリース前チェック
- ☐ 統合テストで問題が発見されなかったか
- ☐ 本番データでの動作確認は可能か(Sandbox)
- ☐ ロールバック手順が準備されているか
- ☐ 監視・アラート設定は適切か
- ☐ 利用者への説明資料は準備できているか
AI活用における注意点とベストプラクティス
1. AIの出力は必ず検証する
- 生成されたコードは必ず動作確認を行う
- セキュリティの観点から脆弱性がないかチェックする
- Salesforceのガバナンス制限に違反していないか確認する
- リスクレベルが高い実装ほど、厳格なレビューを実施する
2. 段階的なAI活用を心がける
- 最初は低リスクな定型作業から開始
- 成功体験を積み重ねてから複雑な業務へ
- 常にリスクとリターンのバランスを評価
3. ナレッジの蓄積とリスク共有
- 効果的だったプロンプトを社内で共有する
- AIで発生したインシデントを記録し、再発防止に活用
- 失敗事例も含めて学習する
4. 人間の専門知識を軽視しない
- AIはあくまで支援ツール
- 最終的な判断は人間が行う
- ビジネス要件の理解はAIでは代替できない
- リスクが高い業務は必ず人間が主導する
5. 継続的な学習とリスク評価
- AIツールは日々進化している
- 新機能や改善点を常にキャッチアップする
- 新しいリスクパターンにも注意を払う
- コミュニティでの情報交換を積極的に行う
まとめ
AI駆動のSalesforce開発は、生産性と品質の両面で大きなメリットをもたらします。特に開発工程やテスト工程では、コーディングAIが大幅な効率化を実現します。
ただし、AIを効果的に活用するためには:
- 適切なシステムプロンプト(ガイドライン)の設定が不可欠
- 各工程の特性を理解し、AI活用可能な領域を見極める
- AIに任せられる業務レベルを正確に理解し、リスクが高い業務は人間が主導する
- 技術・ビジネス・コンプライアンス・運用の4つのリスクカテゴリを常に意識する
- AIの出力を盲信せず、必ず検証する文化を作る
- 人間の専門知識とAIを組み合わせるハイブリッドアプローチが最適
最も重要な原則
「AIは強力な道具だが、万能ではない」
- Level 1-2の定型・パターン化された業務 → AIに積極的に任せる
- Level 3の判断を伴う業務 → AIと人間の協働
- Level 4の戦略的・創造的業務 → 人間が主導
この原則を守り、リスク管理を徹底することで、AI駆動のSalesforce開発は次のレベルへと進化します。本記事が、皆さんのプロジェクトにおける安全で効果的なAI活用の一助となれば幸いです。
参考情報
- Salesforce Developer Documentation: https://developer.salesforce.com/
- Salesforce Well-Architected: https://architect.salesforce.com/well-architected/overview
- Apex Developer Guide: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/