AI×レガシー

AIが書いたコードをSEはどこまで信用してよいのか?

1. AIコーディングは確実に広がっている

AIにコードを書かせることは、もう特別なことではなくなってきました。

簡単な関数、SQL、テストコード、エラー原因の調査、リファクタリング案。AIに依頼すると、かなりの速度でそれっぽいコードが返ってきます。

私自身も、ChatGPTやCodex、VS Codeを使いながら、コード解析や修正方針の整理を行うことがあります。特にレガシーシステムのように、設計書が頼りなく、ソースを読まないと分からない現場では、AIの力はかなり大きいです。

昔なら、ソースを読み、関連ファイルを探し、影響範囲を確認し、修正案を考えるだけでかなり時間がかかっていました。今はAIに補助してもらうことで、最初の理解までの時間をかなり短縮できます。

ただし、ここで勘違いしてはいけないことがあります。

AIがコードを書けることと、そのコードをそのまま信用してよいことは別です。

AIは速いです。でも、速いから正しいとは限りません。新幹線くらい速く間違えることもあります。

2. ただし、AIの出力は“正しそう”に見える

AIが怖いのは、間違っていても正しそうに見えることです。

コードの形は整っている。変数名もそれっぽい。コメントも丁寧。説明も自信満々。

見た目だけなら、かなり頼れる先輩のように見えます。

しかし、実際には条件が漏れていたり、既存仕様とズレていたり、例外ケースを考慮していなかったりします。

特に怖いのは、AIが「一般的には正しいコード」を出してくることです。しかし、現場で必要なのは「このシステムで正しいコード」です。

この差はかなり大きいです。

業務ルール、過去の暫定対応、顧客別の例外、古いデータの扱い。こうした現場固有の事情は、AIが知らないことも多いです。

つまり、AIのコードは、まず「たたき台」として見るべきです。完成品として扱うには、SE側の確認が必要です。

AIは優秀です。ただし、たまに「知らないのに知っている顔」をします。ここを見抜くのが、これからのSEの重要な仕事になります。

3. 現場SEが見るべきレビュー観点

AIが書いたコードを見るとき、現場SEは最低限、次の観点を確認した方がよいです。

まず、仕様を満たしているか。依頼した内容に対して、処理条件が正しく反映されているかを確認します。

次に、例外ケースです。データが存在しない場合、NULL、空文字、0件、重複、桁あふれ、権限不足などが考慮されているかを見ます。

さらに、既存のコーディング規約に合っているかも重要です。動くけれど、現場の書き方と違いすぎるコードは、後で保守しづらくなります。

そして、テストしやすいか。AIが書いたコードほど、テストで裏取りする必要があります。

レビューでは、こう考えるとよいです。

「このコードはきれいか」ではなく、
「この現場で安全に動かせるか」

ここが重要です。

現場SEが見るべき観点を整理すると、次のようになります。

・仕様を満たしているか
・例外ケースを考慮しているか
・既存の処理と整合しているか
・コーディング規約に合っているか
・テストしやすいか
・保守しやすいか
・処理性能に問題がないか
・セキュリティ上の問題がないか
・業務上の意味が正しいか

AIが作ったコードを見て、「なんとなく良さそう」で通すのは危険です。なんとなく良さそうなコードは、なんとなく本番で牙をむくことがあります。

4. 既存システムでは影響範囲確認が必須

新規開発なら、AIが出したコードを比較的試しやすい場面もあります。

しかし、既存システム、特にレガシーシステムでは注意が必要です。

1つの修正が、画面、帳票、バッチ、外部連携、共通部品に影響することがあります。しかも、その影響が設計書に書かれていないこともあります。

そのため、AIに修正させる前に、影響範囲を確認する必要があります。

どこから呼ばれているのか。どのファイルを更新するのか。同じ項目を別処理で使っていないか。帳票や集計処理に影響しないか。テストすべきパターンは何か。

ここを見ずに修正すると、目の前のエラーは直っても、別の場所で問題が出ることがあります。

レガシーシステムは、古い城のようなものです。一つの壁を直したつもりが、なぜか別の部屋のふすまが開かなくなることがあります。

だからこそ、AIに任せる範囲と、人間が確認する範囲を分けることが大切です。

AIには、処理の整理、関連ファイルの候補出し、修正案の作成、テスト観点の洗い出しを任せる。SEは、業務仕様、影響範囲、品質、リリース可否を判断する。

この役割分担が現実的です。

5. AI時代にSEが伸ばすべき力

AI時代にSEが伸ばすべき力は、AIより速くコードを書く力だけではありません。

むしろ、次の力が重要になります。

AIに正しく指示する力。AIの出力をレビューする力。既存システムの影響範囲を読む力。テスト観点を出す力。業務仕様として正しいか判断する力。

AIがコードを書く時代になると、SEの役割は「手を動かす人」から「判断する人」に少しずつ変わっていきます。

もちろん、コードを書けなくてよいわけではありません。コードを読めないと、AIの出力を評価できません。

AIを使うほど、基礎力が必要になります。これは少し意外かもしれません。

AIがあるから勉強しなくてよいのではなく、AIを使いこなすために勉強が必要になります。

刀を持っていても、振り方を知らなければ危ないのと同じです。AIもかなり切れ味のある道具です。

これからのSEに必要なのは、AIに仕事を丸投げすることではありません。AIを使って調査や修正の速度を上げ、その結果を自分で判断できることです。

若手SEにとっては、AIは大きなチャンスです。ただし、AIが出した答えをそのまま信じるのではなく、レビューできる力をセットで育てる必要があります。

6. Codex + VS Codeで安全に使う方法

AIコーディングを実務で使うなら、チャット単体よりも、Codex + VS CodeのようなIDE連携が使いやすいと感じています。

チャットだけだと、コードを貼る、回答をもらう、自分で反映する、自分でテストする、また貼り直す、という流れになりがちです。1回ならよいですが、何度も繰り返すとかなり手間です。

VS Code上で対象プロジェクトを開き、Codexに関連ファイルを確認させながら進めると、作業の流れがかなり自然になります。

おすすめの進め方は次の通りです。

  1. まず処理概要を説明させる
  2. 関連ファイルを探させる
  3. 修正方針を出させる
  4. 影響範囲とリスクを洗い出させる
  5. 小さく修正させる
  6. テストやビルドで確認する
  7. 人間が最終レビューする

ここで大事なのは、いきなり「全部直して」ではなく、段階的に使うことです。

AIには、まず理解させる。次に、候補を出させる。その後、小さく修正させる。最後は人間が確認する。

この流れなら、AIの速度を活かしつつ、現場SEとしての安全確認もできます。

また、CI/CD環境を整えておくと、さらに安全に使いやすくなります。AIが修正した内容を、ビルド・テスト・静的解析で自動確認できるからです。

AIに作らせる。IDE上で確認する。テストで確認する。CI/CDで確認する。人間が最終判断する。

この流れを作れると、AIコーディングはかなり実務向きになります。

まとめ

AIが書いたコードは、かなり役に立ちます。しかし、そのまま信用してよいわけではありません。

AIの出力は、正しそうに見えます。だからこそ、SEがレビューする必要があります。

仕様を満たしているか。例外ケースは考慮されているか。既存システムへの影響はないか。テストで確認できるか。業務として正しいか。

これらを確認して初めて、AIのコードは現場で使えるコードになります。

AIは、SEの仕事を奪うものではなく、SEの判断力をより重要にするものだと思います。

これからのSEは、AIにコードを書かせる力と、AIが書いたコードを見極める力の両方が必要です。

AIを信じすぎず、怖がりすぎず、うまく使う。それが、AI時代の現場SEに求められる姿勢だと思います。

サイト内の関連記事

AIコーディングを安全に使うには、コード生成だけでなく、既存システムの読み解きや影響範囲確認も重要です。

関連記事として、以下のテーマと合わせて読むと理解しやすくなります。

Udemy講座への導線

AIをチャットの回答だけで終わらせるのではなく、実際の開発作業に組み込むには、VS CodeやCodexのような開発環境との組み合わせが重要です。

今後、VS Code + Codexを使った開発効率化講座では、次のような内容を扱う予定です。

AIを使えるSEではなく、AIを安全に使えるSEを目指すための講座にしていきます。

Udemy講座一覧を見る