ソフトウェア開発でAI丸投げがダメな理由

Datasetteの開発者であるソフトウェアエンジニアのサイモン・ウィリソン氏が、ソフトウェア開発においてAIに丸投げすることがダメな理由を解説しています。
Your job is to deliver code you have proven to work
https://simonwillison.net/2025/Dec/18/code-proven-to-work/

生成AIの普及により、Microsoft製品のコードの30%はAIで書かれていたり、開発者の92%がAIコーディングツールを愛用していたりと、ソフトウェア開発の世界にもAIは着々と浸透しつつあります。
しかし、何かしらのAIツールを利用する権限を与えられた若手エンジニアが、AIを用いてソフトウェア開発を行ない、動作テストなどをコードレビュープロセスに丸投げするケースがあるそうです。このような行為について、ウィリソン氏は「これは失礼で、他人の時間を無駄にするもので、正直言ってソフトウェア開発者としては職務怠慢です」と指摘しました。
ウィリソン氏は「ソフトウェア開発者の仕事は、動作が証明されたコードを提供することです。ソフトウェア開発者の仕事は、ただコードを量産するだけではありません。実際、昨今では大規模言語モデル(LLM)こそがコードを書くためのものだと言えるかもしれません。ソフトウェア開発者の仕事は動作するコードを提供するだけでなく、コードが動作することを証明する必要もあります。それを怠ると、実際の作業負担はコードレビュー担当に押し付けられることになります」と語っています。

コードが動作することを証明するための方法として、ウィリソン氏は「手動テスト」と「自動テスト」の2つを挙げています。
「手動テスト」は、コードが正しく動作するのかを自分で確認するというものです。ウィリソン氏は「手動テストのスキルはソフトウェア開発者が習得すべき真のスキルです」「変更によっては、デモンストレーションが難しい場合もあります。それでも、デモンストレーションを行うのはソフトウェア開発者の仕事です。スクリーンキャプチャ動画を録画し、プルリクエストに追加してください。レビュアーに、変更が実際に機能することを示してください」「手動テストはスキルであり、問題の原因を見つけることは、シニアエンジニアを定義するスキルの次のレベルであると言えます」と言及しました。
手動テストが終わったら次は「自動テスト」を行う必要があり、これはAIの進化によりはるかに簡単になったとウィリソン氏は指摘。自動テストについて、ウィリソン氏は「システムを既知の初期状態にし、変更を実行し、正しく動作することを確認します。このプロセスを効率的に促進するためにテストハーネスを統合することも、投資する価値のある重要なスキルです」と語りました。また、自動テストのポイントとして、ウィリソン氏は「変更が将来も機能し続けることを保証できること」を挙げています。
なお、ウィリソン氏は「自動テストで既にカバーされていると思って、手動テストを省略するのはやめましょう」と注意しています。

ただし、ウィリソン氏はAIコーディングツールを完全に否定しているわけではありません。Claude CodeやCodex CLIなどのAIツールは作業中のコードを積極的に実行して動作確認し、問題があればさらに反復処理することに適していると言及。
また、ツールの使い分けを推奨しており、「CLIツールを開発しているときは、Claude Codeにツールの実行方法を教え、単発テストを実行できるようにします。最終的な自動テストでは、ClickのCLIRunnerのようなシステムを使います」と語りました。
他にも、「CSSの変更作業を行う際に、変更によって期待どおりの変化があるかを確認するために、コーディングエージェントにウェブサイトのスクリーンショットを撮るよう依頼する」など、用途に合った使い方を模索することを推奨しています。

自動テストにコーディングエージェントを利用する際の良い点は、ほとんど手間がかからない点です。プロジェクトの中に既にテストが存在する場合、ほとんどのコーディングエージェントは指示なしでもテストスイートを拡張することが可能です。既存のテストのパターンも再利用できるので、テストコードを整理し、好みのパターンで埋め込んでおくことで、コーディングエージェントが好みのテストコードを作成できるようになります。
最後にウィリソン氏は、「ほぼ誰でもLLMに1000行のパッチを生成させてコードレビューに提出させることができます。しかし、それだけでは意味がありません。大事なのは動作が実証されたコードを提出することです」と語りました。
・関連記事
AIツールの開発者が厳選した「存在してほしいAIツール28選」 - GIGAZINE
AIがソフトウェアを実際に構築できない理由 - GIGAZINE
AIを使ったソフトウェア開発の「正解」はまだない - GIGAZINE
AIコーディングツールは生産性を19%も低下させているという調査結果、AI出力の評価・手直し・再出力などで無駄な時間が大量発生か - GIGAZINE
Googleのエンジニアが語るAI支援コーディングの「70%問題」、AIが生産性を爆上げしたのになぜ製品は改善されない? - GIGAZINE
GitHubの調査により開発者の92%がAIコーディングツールを愛用している実態が判明 - GIGAZINE
・関連コンテンツ
in AI, Posted by logu_ii
You can read the machine translated English article Why outsourcing software development to ….







