どうやってレガシーシステムをAIで解析させるか|チャットだけで終わらせない実務的な使い方
結論:チャット単体より、IDEと組み合わせた方が実務では強い
レガシーシステムをAIで解析する時代が来ています。
ただし、実際にどう使うかは会社ごとに決まりがあります。ソースコードを外部AIに入れてよいのか。設計書を入れてよいのか。顧客名や本番データを含めてよいのか。ここは会社のルールに従う必要があります。
その前提で考えると、ChatGPTやCopilotのチャットだけで完結させるより、IDEと組み合わせて使う方が実務ではかなり強いと感じています。
チャット形式でも、ソースの説明や修正案は出せます。しかし、その後が少し大変です。
AIにソースを貼る。回答をもらう。修正案を自分でダウンロードする。自分でファイルに反映する。自分でテストする。エラーが出たら、また貼り直す。
1回だけならまだよいです。ただ、これを何度も繰り返すと、かなりの工数になります。
AIを使っているはずなのに、なぜかコピー&ペースト職人になっている。これは少しもったいないです。
チャット形式だけだと、修正後の検証が弱い
チャット形式のAIは、相談相手としてはかなり優秀です。
「この処理は何をしていますか」「この条件分岐を説明してください」「この修正案を考えてください」「影響範囲の観点を出してください」
こうした使い方には向いています。
ただし、チャットだけだと、実際のローカル環境全体を見ながら修正するのは難しいです。
関連ソースが複数ある。COPY句や共通部品がある。設計書が別フォルダにある。テストコードや実行スクリプトがある。修正後にビルドやテストが必要。
こうなると、チャットに一部のソースを貼るだけでは限界があります。
レガシーシステムは、1つのファイルだけで完結しないことが多いです。修正対象の周辺に、影響するファイルがたくさんあります。画面、帳票、バッチ、共通部品、設定ファイル。まるで古い城の隠し通路です。入口を直したら、なぜか別の部屋のふすまが開かなくなることがあります。
IDE連携が実務向きだと感じた理由
そこで有効なのが、IDEとの組み合わせです。
特に、VS CodeとCodexのような組み合わせは、実際に使っていて良いと感じました。
VS Code上でプロジェクトを開いておけば、AIがローカルのファイル構成を確認しながら作業できます。修正対象のソースだけでなく、関連する設計書、共通処理、設定ファイル、テスト資材なども確認しやすくなります。
チャットで一部分だけ相談するのではなく、プロジェクト全体を見ながら、
- 処理の流れを調べる
- 関連ファイルを探す
- 修正箇所を提案する
- 実際にコードを修正する
- テストやビルドを実行する
- エラーが出たら再修正する
という流れに近づけられます。
これができると、AIは単なる回答係ではなく、開発作業を一緒に進める相棒になります。
CI/CDまで用意しておくとさらに強い
さらに、CI/CD環境まで準備しておくと、AI活用の効果は大きくなります。
たとえば、以下のような流れです。
1. VS Codeで対象プロジェクトを開く
2. Codexに修正方針を依頼する
3. Codexが関連ソースを確認する
4. 修正案を作成する
5. ローカルでビルド・テストを実行する
6. 問題があれば再修正する
7. CI/CDへ反映して検証するこの流れが作れると、人間は「作業者」から「判断者」に近づきます。
もちろん、完全に任せきりにはできません。AIが修正した内容は、人間がレビューする必要があります。特にレガシーシステムでは、業務仕様や過去の経緯が重要です。
AIはソースを読めます。でも、「この処理は昔の障害対応で入ったものだから消してはいけない」という現場の歴史までは、簡単には分かりません。
だからこそ、AIに任せる部分と、人間が判断する部分を分ける必要があります。
レガシーシステム解析の進め方
実務で使うなら、いきなり修正させるより、まずは解析から始めるのが安全です。
おすすめの流れは次の通りです。
1. 対象機能の概要をAIに整理させる
2. 入力・処理・出力に分けて説明させる
3. 関連ファイルや呼び出し関係を探させる
4. 修正候補を出させる
5. 影響範囲とリスクを洗い出させる
6. テスト観点を出させる
7. 小さく修正して検証するポイントは、最初から「直して」ではなく、まず「理解させる」ことです。
レガシーシステムでは、修正よりも理解に時間がかかります。ここをAIで短縮できるだけでも、かなり価値があります。
特に若手エンジニアにとっては、最初の壁が低くなります。
「このソースを読んでおいて」と言われても、どこから見ればよいか分からない。でもAIに概要を整理させることで、最初の地図ができます。
地図があるだけで、山道はかなり歩きやすくなります。もちろん、その地図がたまに間違っているので、現地確認は必要です。
若手にもベテランにも効果がある
AIによるレガシー解析は、若手エンジニアだけのものではありません。
若手には、理解の補助として役立ちます。ベテランには、調査や説明資料作成の効率化として役立ちます。
若手は、AIを使うことでベテランに近い速度で全体像をつかめる可能性があります。ベテランは、頭の中にある知識をAIと一緒に文書化しやすくなります。
つまり、AIは若手の学習補助にも、ベテランの知識継承にも使えます。
今まで熟練SEの頭の中にあった仕様を、ソースコードとAIを使って少しずつ外に出す。これは、レガシーシステムを次世代へ引き継ぐうえでかなり重要です。
会社として許可するならルールも必要
ただし、AI活用にはルールが必要です。
外部AIに入れてよい情報。入れてはいけない情報。社内AI環境で扱うべき情報。顧客名や個人情報のマスキング。AIが出した修正案のレビュー方法。CI/CDで検証する範囲。
ここを決めずに使うのは危険です。
私の意見としては、AIツールはどんどん許可すべきだと思います。ただし、無制限に自由利用するのではなく、安全に使えるルールを整えるべきです。
禁止するだけでは、生産性は上がりません。かといって、何でも自由に入力してよいわけでもありません。
大切なのは、使わせないことではなく、安全に使える形を作ることです。
まとめ
レガシーシステムをAIで解析するなら、チャット形式だけで終わらせるのは少しもったいないです。
チャットは相談や説明には便利です。しかし、何度も修正・反映・テストを繰り返す実務では、IDEとの組み合わせが強いです。
VS CodeのようなIDEでプロジェクトを開き、CodexのようなAIコーディング支援と組み合わせる。さらにCI/CD環境を整えておけば、修正、検証、再修正の流れをかなり効率化できます。
AIは、単なるチャット回答で終わらせるより、開発作業の中に組み込んだ方が価値が出ます。
若手エンジニアも、ベテランエンジニアも、AIを使ってレガシーシステムを読み解き、修正し、検証できるようになる。そうなれば、開発の生産性は大きく向上すると思います。
私自身、実際に使ってみて、かなり生産性の向上を感じました。
レガシーシステムを古いやり方だけで守る必要はありません。AI、IDE、CI/CDを組み合わせて、古いシステムを新しいやり方で読み解いていく。
これが、これからのレガシー保守の現実的な進め方だと思います。
