「千行のパッチ生成」は誰でもできる—だからこそ価値がない
AI時代のコーディングに、厳しい警鐘が鳴らされています。
「ほぼ誰でも、LLMにプロンプトを与えて千行のパッチを生成させ、それをコードレビューに提出できます。
それはもう価値がありません。
価値があるのは、動作が証明されたコードを貢献することです。」
この言葉は、LLMツールの普及によって引き起こされているコードレビュー危機の核心を突いています。Python界の著名エンジニアであるSimon Willisonが、この問題について詳細な警告を発しました。
何が問題なのか?—レビュアーへの負担転嫁
LLMツール(ChatGPT、Claude、GitHub Copilotなど)の登場により、大量のコードを短時間で生成することが可能になりました。しかし、ここに深刻な問題が発生しています。
典型的な問題パターン
| 問題行動 | 結果 | 被害者 |
|---|---|---|
| LLMで千行のコードを生成 | 自分でテストせずにPR提出 | レビュアー・保守者 |
| 「動くはず」の推測でコミット | バグの検証をレビュアーに丸投げ | チームメンバー |
| テストコードなしで機能追加 | 将来のリグレッションリスク | プロジェクト全体 |
Simon Willisonは明確に述べています:
「コードレビュープロセスに実際の作業を肩代わりさせることは怠慢である」
オープンソースコミュニティへの深刻な影響
この問題は、特にオープンソースプロジェクトに深刻な影響を与えています。
保守者が直面する現実
- 大量の未検証PRが押し寄せる
- レビューに費やす時間が爆発的に増加
- 本来の開発作業に充てる時間が激減
- バーンアウトのリスクが上昇
オープンソースの保守者は多くの場合、無償でプロジェクトを維持しています。そこに「LLMで生成しただけ」の未検証コードが大量に押し寄せることは、彼らの善意を搾取することに他なりません。
「動作が証明されたコード」とは何か?
では、Simon Willisonが言う「動作が証明されたコード」とは具体的に何を指すのでしょうか?
1. 手動テストの実施と証拠提示
Willisonは次のように強調しています:
「コードが実際に動作することを自分で確認したことがなければ、そのコードは機能していない」
具体的な証拠提示方法:
- ターミナルコマンドと出力をPRコメントに記載
- スクリーン録画を添付して動作を示す
- エッジケースの確認結果を明記
2. 自動テストの必須化
これについてWillisonは非常に明確です:
「LLMツールの登場により、自動テストをスキップする言い訳はもはや存在しない」
LLMはコード生成だけでなく、テストコードの生成にも優れています。つまり:
- 機能コードを生成したなら、同時にテストも生成できる
- 「テスト書く時間がない」は言い訳にならない
- 変更に対応するテストをバンドルして提出すべき
3. エージェントにも証明を求める
Claude CodeやOpenAI Codex CLIなどのコーディングエージェントを使用する場合も同様です:
- エージェントに変更の動作を証明させる
- 自動テストの実行結果を確認する
- 人間が最終的な責任を持つ
新しいコード貢献の基準
LLM時代における、新しいコード貢献の基準を整理します。
| 必須要件 | 具体的な実施内容 | なぜ必要か |
|---|---|---|
| 手動テスト | 自分で実行し、動作を確認 | LLMは幻覚を起こすため |
| 証拠提示 | スクリーンショット・録画・ログ | レビュアーの負担軽減 |
| 自動テスト | 変更に対応するテストコード | 将来のリグレッション防止 |
| エッジケース確認 | 境界条件・異常系のテスト | 本番環境での問題防止 |
「コンピュータは説明責任を負えない」
Willisonの結論は、AI時代のソフトウェア開発における根本的な真実を突いています:
「コンピュータは説明責任を負えない。それはあなたの仕事である。」
LLMがどれだけ優秀でも、最終的な責任は人間が負う。だからこそ、人間が提供する証拠と問責性が重要になる。
LLM時代のプロフェッショナリズム
この議論は、LLMツールの使用を否定しているわけではありません。むしろ、LLMを適切に活用する方法を示しています。
推奨されるワークフロー
- LLMでコードを生成(効率化)
- 自分で動作を確認(責任)
- LLMでテストを生成(品質保証)
- 証拠と共にPR提出(透明性)
このワークフローを守ることで、LLMの効率性と、プロフェッショナルとしての責任を両立できます。
ジュニアエンジニアへの警告
Willisonは特にジュニアエンジニアに対して警告を発しています。LLMツールの力を借りれば、経験が浅くても大量のコードを生成できます。しかし:
- コード生成は仕事の始まりに過ぎない
- 検証なしの提出はキャリアにマイナス
- レビュアーの時間を奪うことは信頼を失う
- 「動作証明」の習慣が成長につながる
まとめ:価値の定義が変わった
LLMの登場により、「コードを書く」こと自体の価値は劇的に低下しました。
- 誰でも千行のパッチを生成できる—だから価値がない
- 動作が証明されたコード—これだけが価値を持つ
- 説明責任は人間にある—AIは責任を取れない
- テストと証拠がプロフェッショナリズムの証
LLMは強力なツールですが、それを使いこなすためには、より高い責任感が求められます。「生成して終わり」ではなく、「証明して貢献」する。これがAI時代のソフトウェアエンジニアリングの新基準です。
参考リンク:

コメント