AI駆動Salesforce開発手法について考える

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に絶対任せてはいけない業務一覧

以下の業務は人間が必ず主導する必要があります:

戦略・方針決定レベル

  1. システム全体のアーキテクチャ決定
    • マルチテナント設計の採用判断
    • オンプレミスvsクラウドの選択
    • セキュリティポリシーの策定
  2. ビジネス要件の最終決定
    • ステークホルダー間の利害調整
    • 優先順位の決定
    • 投資対効果の判断
  3. コンプライアンス判断
    • 法令遵守の解釈
    • 監査対応方針
    • リスクアセスメント

機密・重要データの取り扱い

  1. 本番環境への直接操作
    • 本番データの削除・更新
    • 権限設定の変更
    • リリース作業の実行
  2. 機密情報を含む実装
    • 支払い処理ロジック
    • 認証・認可メカニズム
    • 暗号化キーの管理

顧客対応・契約

  1. 顧客との直接コミュニケーション
    • 要件ヒアリング
    • 仕様変更の合意
    • 納期調整

リスク管理のためのチェックリスト

AI活用前に以下を確認してください:

実装前チェック

  • ☐ 生成されるコードに機密情報が含まれないか
  • ☐ セキュリティ要件が明確に定義されているか
  • ☐ 法令・規制の制約を理解しているか
  • ☐ プロジェクトのコーディング規約を確認したか
  • ☐ エラーハンドリング要件が明確か

実装後チェック

  • ☐ セキュリティレビューを実施したか
  • ☐ 単体テストで十分なカバレッジを達成したか
  • ☐ パフォーマンステストを実施したか
  • ☐ コードレビューで第三者の確認を受けたか
  • ☐ ドキュメントが適切に更新されたか

リリース前チェック

  • ☐ 統合テストで問題が発見されなかったか
  • ☐ 本番データでの動作確認は可能か(Sandbox)
  • ☐ ロールバック手順が準備されているか
  • ☐ 監視・アラート設定は適切か
  • ☐ 利用者への説明資料は準備できているか

AI活用における注意点とベストプラクティス

1. AIの出力は必ず検証する

  • 生成されたコードは必ず動作確認を行う
  • セキュリティの観点から脆弱性がないかチェックする
  • Salesforceのガバナンス制限に違反していないか確認する
  • リスクレベルが高い実装ほど、厳格なレビューを実施する

2. 段階的なAI活用を心がける

  • 最初は低リスクな定型作業から開始
  • 成功体験を積み重ねてから複雑な業務へ
  • 常にリスクとリターンのバランスを評価

3. ナレッジの蓄積とリスク共有

  • 効果的だったプロンプトを社内で共有する
  • AIで発生したインシデントを記録し、再発防止に活用
  • 失敗事例も含めて学習する

4. 人間の専門知識を軽視しない

  • AIはあくまで支援ツール
  • 最終的な判断は人間が行う
  • ビジネス要件の理解はAIでは代替できない
  • リスクが高い業務は必ず人間が主導する

5. 継続的な学習とリスク評価

  • AIツールは日々進化している
  • 新機能や改善点を常にキャッチアップする
  • 新しいリスクパターンにも注意を払う
  • コミュニティでの情報交換を積極的に行う

まとめ

AI駆動のSalesforce開発は、生産性と品質の両面で大きなメリットをもたらします。特に開発工程やテスト工程では、コーディングAIが大幅な効率化を実現します。

ただし、AIを効果的に活用するためには:

  1. 適切なシステムプロンプト(ガイドライン)の設定が不可欠
  2. 各工程の特性を理解し、AI活用可能な領域を見極める
  3. AIに任せられる業務レベルを正確に理解し、リスクが高い業務は人間が主導する
  4. 技術・ビジネス・コンプライアンス・運用の4つのリスクカテゴリを常に意識する
  5. AIの出力を盲信せず、必ず検証する文化を作る
  6. 人間の専門知識とAIを組み合わせるハイブリッドアプローチが最適

最も重要な原則

「AIは強力な道具だが、万能ではない」

  • Level 1-2の定型・パターン化された業務 → AIに積極的に任せる
  • Level 3の判断を伴う業務 → AIと人間の協働
  • Level 4の戦略的・創造的業務 → 人間が主導

この原則を守り、リスク管理を徹底することで、AI駆動のSalesforce開発は次のレベルへと進化します。本記事が、皆さんのプロジェクトにおける安全で効果的なAI活用の一助となれば幸いです。


参考情報