The AI coding trap(AIコーディングの罠)
Chris Loy 氏の記事「The AI Coding Trap」では、AIによるコーディングをめぐる興味深い指摘がありました。その中でも特に印象的だった3つのポイントを紹介します。
1. Code first, ask questions later(先にコードを書き、あとで質問する)
AI コーディングエージェントは、コードを単体で高速に生成できます。しかし、多くのソフトウェアは複雑なシステムの一部として機能しており、LLM(大規模言語モデル)は現時点ではアプリケーション全体の文脈を一度に記憶し続けることができません。
そのため、生成されたコードを人間がレビューしたり、テストや統合を行ったりする必要があります。
その結果、複雑なソフトウェアを扱う場合には、AIが書いたコードを「あと追いで理解する時間」に多くが割かれることになります。現実には、稼働するソフトウェアを届けるまでの生産性向上はせいぜい10%程度、という経験則的な報告もあります。
2. LLMs are lightning fast junior engineers(LLM は超高速なジュニアエンジニア)
LLMは、「超高速なジュニアエンジニア」のように振る舞います。大量のコードを瞬時に生成できる反面、文脈理解や設計思想を十分に汲み取れないことがあるため、経験豊富なエンジニアの指導・レビューが不可欠です。
人間が成長を伴う新人と異なり、AIは同じレベルに留まることも特徴的です。
3. How to avoid the AI coding trap(AI コーディングの罠を回避する方法)
AIに頼りすぎると、表面的に動くコードは揃っても、長期的な保守性や品質が犠牲になる「AIコーディングの罠」に陥りやすくなります。特に、なぜそのコードが正しいのか、どんな前提で動くのかを理解せずに導入すると、後で致命的な不具合やセキュリティリスクにつながる可能性があります。
AIを罠にしないためには、コード生成だけでなく、仕様策定・設計・テスト・ドキュメントなど開発プロセス全体にAIを組み込み、人間がリードしていくことが重要です。
AIとの協働
私自身もAIにコードを書かせることがありますが、そのまま鵜呑みにすると「あとで理解するのに時間がかかる」という経験をしたことがあります。記事で指摘されているように、AIを単なるスピードアップのためのツールとして使うのは危険です。
AIは、新人エンジニアに仕事を任せる感覚で扱うのが良いと思います。任せる範囲を決め、レビューやテストで品質を確保し、ドキュメントで補強する――こうした仕組みが必要です。
(IT 事業部門 T.H)