AIが「ミスをする」より怖いこと

AIが生成したコードに小さなミスが潜んでいる。数字が1つズレていたり、エッジケースの考慮が抜けていたり、タイミングが微妙に噛み合わなかったり。そのコードは動く。テストも通る。デプロイも問題ない。問題が顔を出すのは、トラフィックが倍になった頃だ。

これはZenn上の記事「AIに頼りすぎて、コードが読めなくなっていないか」で紹介されていたシナリオだ。元ネタは15歳・コーディング歴5年のXavierさんが書いた「So AI is making me Lazy…」という記事で、記事の著者(エンジニア歴8年、Claude CodeやAIコーディング支援を「使い倒している側」だと自認)がその内容に触れ、自分の整理も兼ねて書いたものだ。

重要なのはここだ。問題はAIがミスをすることじゃない。そのミスが自分の目をすり抜けていくことのほうだ。

なぜ今これを考えるべきか

AIコーディング支援はもう「使うか使わないか」という段階じゃない。使うのが前提になりつつある。だからこそ、「使い方の質」を問うタイミングが来ている。

Stack Overflowからコピペしていた時代は、500行のコードのうち貼り付けるのはせいぜい10行程度だった。骨組みは自分で作っていた。AIに「こういうコードが欲しい」と打ち込むと、まとまったコードがまるごと返ってくる。形式が変わった分、リスクの形も変わった。

電卓か、松葉杖か

元記事で一番切れ味があったのは、この比喩だ。

数学を理解している人が電卓を使えば、計算を速くするだけで済む。その分、「本当に考えるべき問い」に頭を使える。財務の人がExcelを使うのも同じ構造だ。

でも、12歳の子が割り算をまったく練習せずに電卓だけで育ったら?かけ算の理解が怪しくなる。見積もりができなくなる。10倍間違っていても気づかない。

AIに置き換えると、こうなる。スキーマを自分で切ったことがある、SDKをセットアップしたことがある、サーバーサイドのクエリを書いた経験がある──そういうエンジニアがAIに「クエリのドラフトちょうだい」と頼むのは、電卓を使う行為に近い。

でも、スキーマを定義したこともなく、ドキュメントも読んだことがない状態で、AIが生成したクエリをそのまま本番に投げているなら、それは電卓じゃなく松葉杖だ。松葉杖に頼り続けると、脚は弱る。

「もう手遅れ」の5つのサイン

元記事には自己チェックリストがある。シンプルで、効く。

  1. 公式ドキュメントを最後に開いたのがいつか思い出せない
  2. エラーを見たら、まず読むのではなくチャットに貼る
  3. 自分が出した機能の内部ロジックを、他人に説明できない
  4. AIなしでコードを書くことに不安を覚える
  5. AIが微妙に間違ったコードを書いても気づかなくなった

15歳でこの自己観察ができるのは素直に驚く。むしろ経験のある人間のほうが油断しやすい。「自分はわかってるから大丈夫」と思った瞬間に、この5項目のどれかに片足を突っ込んでいるケースが多い。

AIおじさんとしての見方

元記事のコメント欄には「これはcope(自分を納得させるための言い訳)だ、ツールを正しく使えばこんな話にはならない」という反論もあった。これも半分は正しい。

AIコーディングの使い方が成熟してくると、「任せる部分」と「自分で見る部分」の線引きが変わってくる。本番DBに投げるマイグレーションやセキュリティに関わる処理は、AIの提案を受け取っても必ず読み直す。一方、ドキュメントから型定義を起こす作業や既存コードのリファクタ提案は、かなり信頼して使える。

この線引きの感覚こそ、経験から育つものだ。

そして、その感覚を育てるには「自分の手で書いた時間」が下地として要る。Next.jsの新規プロジェクトで毎回「まず構成を提案して」とAIに振ることが便利なのはわかる。ただ、それを3年続けたとき、自分の中にアーキテクチャを組み立てる感覚がどれだけ残っているか──正直なところ、わからない。だからこそ意識的な手当てが要る。

実務的な示唆:4つの対策

元記事が提案していた対策を整理すると、こうなる。

① AIが出したコードを1行ずつ読む
PRレビューでも自分のコードでも、見慣れない関数名が出てきたら止まる。構造がしっくり来なかったら止まる。「何をしているコードか」を自分の言葉で説明できるか確認してからコミットする。

② 月に1回、AIなしで何か作る
Copilotを切る。オートコンプリートも切る。小さなCLIでも、2日でできるサイトでも何でもいい。思ったより苦労するはずだ。その苦労こそ、戻ってきてほしい感覚だ。

③ アーキテクチャの判断は自分で持つ
DBを何にするか、フレームワークは何か、どこにホスティングするか。この手の判断をAIに丸投げすると、後から効いてくる。なぜそれを選んだかをメモに書き残す習慣が、あとで自分を助ける。

④ AIのコードをラバーダックする
AIが出したコードを、友達に説明するつもりで声に出して読む。詰まったら、まだわかっていないサインだ。元記事の著者は「シャワーで自分に説明する」と書いていたが、これはわりと効く習慣だと思う。

道具として使うか、松葉杖として使うか

エンジニアとしての価値は、プロンプトをうまく書けることじゃない。怪しさを嗅ぎ取る勘、プレッシャーの中で判断する力、枠の外から発想する力──これはAIが生成できない部分だ。

AIはなくならない。使わないという選択肢ももうない。ただ、道具として使うのか、松葉杖として使うのかで、数年後には差が出る。

「動く」と「わかる」は別物だ。この区別を保ち続けることが、今のエンジニアに求められる最低限の自覚だと思っている。