AIは大量のコードから構造や候補を速く抽出できますが、そのシステムが業務で何を意味し、どの挙動を守るべきかまではコードだけで確定できません。人による調査は、利用者、運用、契約、障害履歴などを照合し、事業判断に使える結論へ変える役割を担います。
AI解析と人による調査の違い
| 観点 | AIによる解析 | 人による調査 |
|---|---|---|
| 速度 | 多くのファイルを並列に読み、要約候補を作りやすい | 確認に時間はかかるが、重要度を判断できる |
| 構造把握 | クラス、関数、API、DB参照、依存関係を抽出できる | 例外、暗黙の前提、実運用とのずれを確認する |
| 仕様 | コードに実装された挙動から仕様を推定する | 正しい仕様か、偶然残った挙動かを関係者と判断する |
| 業務背景 | 入力された資料の範囲で関連づける | 利用者、契約、制度、顧客対応まで含めて意味を確認する |
| 責任 | 候補と根拠を提示する | 採用・修正・保留を判断し、説明可能な結論にする |
AIが得意なこと
全体像の仮説づくり
ディレクトリ構成、主要モジュール、起動点、データの流れを整理します。
横断検索
同じデータ項目、外部API、認証処理、設定値が使われる場所を探します。
説明のたたき台
コードを読まない人向けに、処理の概要や用語集の初稿を作ります。
調査漏れの候補
未使用に見える処理、古い依存、例外的な分岐など、確認すべき箇所を挙げます。
AIの価値は、最終回答を無条件に得ることより、調査対象を絞り、人が確認する順番を速く作れることにあります。
AIだけでは確定できないこと
コードにない業務
電話や紙で補われる処理、担当者だけが知る例外対応、月末の手作業はリポジトリに現れません。
正しい仕様かどうか
実装されているからといって、現在も必要とは限りません。不具合、暫定対応、過去の契約条件が残っている可能性があります。
本番環境の実態
コードと本番設定が一致しているか、どのバージョンが動いているか、外部サービスの契約者は誰かを別途確認する必要があります。
優先順位とリスク許容度
同じ問題でも、決済、社内集計、キャンペーン機能では影響が異なります。事業側の判断なしに改修優先度は確定できません。
セキュリティ上の注意:解析対象のコード、設定、ログには秘密情報や個人情報が含まれる可能性があります。利用するAI環境、保存期間、学習利用の有無、アクセス権限、削除手順を確認してから投入範囲を決めます。
AIの出力を検証する6つの方法
- 根拠ファイルを示す説明ごとに対象ファイル、関数、設定箇所を紐づけます。
- 複数の情報源を照合するコード、DB、クラウド設定、ログ、画面、運用資料を比較します。
- 実行結果を確認するテスト環境や読み取り専用の調査で、推定した挙動を確かめます。
- 利用者へ聞く通常手順だけでなく、例外時や締め処理も確認します。
- 不明を不明のまま残す推定を事実として書かず、確度と未確認事項を分けます。
- 更新日と対象版を記録するどのコミット、環境、資料を調査したかを残します。
NISTのSecure Software Development Frameworkも、自動解析と人によるレビューを二者択一にせず、検出結果を人が確認し、優先順位付けと修正へつなげる考え方を示しています。
実務では「AIで広く、人が深く」調べる
最初にAIで全体を走査し、機能、依存関係、データ、外部連携の候補を作ります。その後、人が重要領域を選び、コード以外の証拠と照合します。最後に事業側と、守る仕様、廃止候補、追加調査が必要な点を合意します。
この分担なら、AIの速度を利用しながら、推測を確定情報として扱う危険を抑えられます。成果物には、結論だけでなく根拠と未確認事項を含めることが重要です。
AI解析を、経営判断に使える説明へ
Poge Lensは、AIによる解析と確認プロセスを組み合わせ、既存システムの機能、構造、データ、外部連携、変更時の注意点を整理します。出力イメージは成果物サンプルで確認できます。
まとめ
AIによるソースコード解析は、調査の速度と範囲を広げます。人による調査は、コード外の事実を集め、推定を検証し、事業上の意味と優先順位を決めます。どちらか一方に任せるのではなく、AIの出力に根拠と確度を持たせ、人が意思決定できる情報へ変えることが重要です。