AIは最後の20%をできない
本記事では、ソフトウェア開発におけるAIの限界を探る。AIはプロジェクトの最初の80%を迅速に完了できるが、最後の20%には依然として人間の細かな作業が必要である。著者は自身の経験から、AIがスタートを容易にする一方で、完了には人間の判断と努力が不可欠だと指摘する。
著者のVincent Schmalbachは、長年にわたり個人プロジェクトやフリーランスの仕事でソフトウェア開発に携わってきた経験豊富な開発者です。彼は、AIツールの登場により開発効率が大幅に向上したと述べています。慣れたタスクでは、LLMに要件を説明するだけで、プロジェクトのセットアップ、機能実装、バグ修正など、膨大な量のコードを迅速に得られるようになりました。そのため、完全なプロジェクトがすぐそこにあるように感じられます。しかし、彼の経験では、AIがプロジェクトを本当に完了させたことはほとんどありません。
AIは最初の80%、時には90%や99%と思える部分を高速でこなしますが、最後の数パーセントの詳細には依然として多大な集中作業が必要です。重要なのは、AIが非常に遠くまで素早く連れて行ってくれる一方で、事前にAIに伝えた詳細についても、結局自分で取り組まなければならないという点です。
プロジェクトの初期段階では、著者はすでに多くの作業を理解しています:アプリケーションのセットアップ、主要画面の構築、データ接続、通常の動作の実装などです。長年の経験から何を要求すべきか分かっており、出力が間違っていれば問題を特定し、より良い指示をAIに与えられます。これにより、アイデアを動作するデモに変える速度はAI以前より格段に速くなりました。しかし、AIを使っても、本当に難しい部分は依然として存在します:奇妙なユーザー入力、扱いにくい統合、デプロイ問題、セキュリティ脆弱性、時々失敗するバックグラウンドジョブ、長時間使って初めて感じるデザインの違和感などです。AIはこれらの問題に早く到達させてくれますが、問題を消し去るわけではありません。
最終段階でもAIは有用です:テストの作成、ログの検査、修正案の提案、コードレビュー、インターフェースの磨き上げなどに使えます。しかし、プロジェクトが完了したかどうかをAIに任せることはできません。AIは、クライアントがどの妥協案を受け入れるか、どの小さなワークフローの問題が毎日ユーザーを悩ませるか、どのバグが最も重要かを知りません。著者がそれらに気づき、判断し、すべてが機能することを確認する必要があります。
このパターンは、開発者を怠惰にさせる危険性があります:動作するデモを目の前にすると、ほとんどの作業が終わったように感じやすくなります。新しいプロジェクトを始めるほうが、現在のプロジェクトの細かい問題を修正するより楽しいものです。AIはプロジェクトを始める速度を上げますが、完了する速度は上がりません。簡単なスタートごとに、別の最後の20%が待っています。これは個人プロジェクトで顕著で、著者はいくつかのアイデアを有望に見えるところまで素早く進められますが、それぞれにかなりの磨き上げと手作業が必要であることに気づきます。
クライアントワークも同じパターンですが、 stakesはより高いです。彼はコードの山や印象的なデモを渡して仕事を終えたとは言えません。ソフトウェアはクライアントが依頼した問題を解決しなければならず、正しく動作し、日常の使用に耐え、後で他の人が作業するときに理解可能でなければなりません。主要機能をより速く構築できることは価値がありますが、すべての仕上げ作業は依然として行われなければなりません。
つまり、AIは膨大な時間を節約し、注意が必要な部分に早く到達させてくれます。しかし、そのスピードに惑わされて怠惰になってはいけません。なぜなら、完成させることは依然として開発者の仕事だからです。