この記事は、最近のコーディングエージェントの能力の飛躍は漸進的な改善ではなく段階的な変化であると論じ、それを、ビットから命令へ、命令から関数へ、関数からオブジェクトへ、オブジェクトからサービスへ、サービスから分散システムへと続いてきた「抽象度を高める弧」の中に位置づける。中心的な主張は、「コーディングは劇的に変わった」が「ソフトウェアエンジニアリングは、その核心においては変わっていない」というものである。コードを生み出す機械的な作業は自動化されつつあるが、システムを仕様化し、設計し、評価する認知的な作業は置き換えられるのではなく増幅されている。記事は現在をファクトリーの比喩で捉える(ファクトリーモデル を参照)。そこでは開発者は、コードを直接書くのではなく、エージェント群を構築して運用する。
記事はこれを AI コーディングツールの 3 つの世代にたどる。高速化されたオートコンプリート、一歩ずつ指示される同期型エージェント、そして仕様に基づいて比較的少ない監督で何時間、何日も動き続けられる自律型エージェントである。記事は、この第 3 世代によって、ソフトウェア開発の未解決のボトルネックは生成ではなく検証になったと論じ、強いエンジニアと弱いエンジニアを分けるスキルは、技術的スキルそのものから離れたのではなく、仕様の明確さ、アーキテクチャ上の判断、規律あるレビューへと移ったと主張する。
要点
- 現在の変化を歴史的な「抽象度の弧」におけるもう 1 つの段階として捉え、Grady Booch がそれを「ソフトウェアの第三の時代」と表現したことを引用している(ソフトウェアの第三の時代 を参照)。
- AI コーディングツールの 3 つの世代を区別する。高速化されたオートコンプリート(書く・実行する・デバッグするというループは変わらないまま、キー入力を節約する)、同期型エージェント(自然言語でタスクを与え、開発者がすべてのステップに立ち会う)、そして自律型エージェント(仕様を引き渡して最大で何時間、何日も動かし、ログ、プレビュー、プルリクエストをレビューのために返してくる)である。
- ファクトリーのメンタルモデルを提示し、その比喩を拡張する。ファクトリーには品質管理があり、工程の文書があり、正確に指定しなければ誤った出力が出てくる入力があり、環境が不安定だと停止する。そして、このモデルを積極的に採用したチームの内部では、マージされたプルリクエストのかなりの部分が、クラウド環境で自律的に動くエージェントから生まれていると報告している。
- オンボーディングとの類似を引く。行き詰まったエージェントは、新人エンジニアがそうするように、コミット履歴を検索し、
git blameを実行し、Slack で人間にエスカレーションする。そして、ドキュメントや履歴からなぜそのような構造になっているのかを新人エンジニアが理解できないコードベースでは、エージェントも苦労すると論じる。 - 「仕様こそがレバレッジである」と主張する。何十ものエージェントを並列に動かす規模では、曖昧な要件や不適切なアーキテクチャ上の判断が 1 つの実装にとどまらずエージェント群全体に伝播するため、仕様の質が凡庸な出力と卓越した出力の差を決める。
- エージェント型の開発がなお必要とするものを列挙する。明確で評価可能な要件、強力な抽象化と整理されたモジュール境界、信頼できるテスト、慎重なトレードオフ、そして ヒューマン・イン・ザ・ループ によるレビューである。エージェントは「自信満々に間違える」のであり、その出力はざっとしたレビューを通過してしまう程度には出来がよいため、レビューのスキルに求められる水準は下がるのではなく上がると論じる。
- エージェント型のワークフローでは Red/Green のテスト駆動開発がほぼ必須になると論じる。テストを通過することを最適化するエージェントはテストを通過する方法を見つけてしまうものであり、実装の後に書かれたテストスイートは、実装がすべきことではなく、実装がたまたまやっていることを追認してしまうおそれがあるからである(Red/Green TDD を参照)。
- 生成ではなく検証こそが未解決のボトルネックだと論じる。UI の検証は依然として脆く、大規模なコードベースではコンテキストウィンドウの制限によりエージェントが推論対象の外にある制約を見落とすことがあり、不安定な環境は何十ものエージェントが同時にぶつかると構造的な障害になる。満たされていないインフラ上のニーズとして、より優れた自動回帰検出、成果物レベルの検証、信頼できる環境のプロビジョニング、そして ガードレール を挙げている。
- システム思考、問題の分解、アーキテクチャ上の判断、仕様の明確さ、出力の評価、オーケストレーションのスキルを、高いレバレッジを持つエンジニアを際立たせる能力として挙げ、それらを新しいスキルではなく、相対的な重要性が高まった既存のスキルとして位置づけている。
- 報告されている前年比の伸び、すなわち新規ウェブサイト作成が約 40% 増、新規 iOS アプリが 50% 近く増、米国における GitHub へのコードプッシュが 35% 増であることを、ソフトウェアを作る障壁が実際に下がった証拠として挙げる一方で、量が増えることは必ずしも質が良くなることを意味しないと注意を促している。
背景
記事は冒頭で、Cursor の Michael Truell の考えを発展させたものだと述べ、後に彼のものとされるさらなる発言を、自らの主張と響き合うものとして引用している。「開発者の仕事は、製品だけでなく、ソフトウェアを作るシステム、つまりファクトリーを構築することになりつつある」と「アイデアをレビューするのはコードをレビューするよりずっと楽しい」であり、後者は Cursor 自身のアカウントの動画にリンクされている(Cursor を参照)。記事は同じ著者によるさらなる参考文献として、「Human judgment doesn’t leave the software factory. It relocates.」「Practical Loop Engineering」「Agentic Code Quality」と題された記事などを挙げている。締めくくりでは、採用、委任、コミュニケーション、そして出荷するチームの率い方についてより詳しく扱ったものとして、著者の O’Reilly の書籍 Leading Effective Engineering Teams を読者に紹介している。