ソフトウェアの歴史とは、機械に仕事を委ねてきた歴史だ。私たちはまずカードに命令を打ち込むことから始め、次にコンパイラに読みやすい言語を機械語へと変換させ、さらに仮想マシンに物理的にどのコンピュータ上にいるかを忘れさせ、そしてクラウドに機械そのものの存在をすっかり忘れさせた。それぞれのステップは、その当時は制御権を手放しているように見えた。しかし実際にはどれも一段上のレベルへと移動することだった――一層の骨折り仕事を、一層のレバレッジへと交換してきたのだ。エージェント型開発は、この長い系譜における次の一歩であり、これまでのどのステップよりも大きなものになる。
抽象化こそがずっと変わらない物語だった
これまでのどの転換も、プログラマーを不要にしたわけではない。それらが変えたのは、プログラマーが一日の時間を何に費やすかだった。コンパイラはプログラミングを終わらせたのではなく、手作業でのアセンブリ記述を終わらせた。クラウドは運用を終わらせたのではなく、サーバーをラックに詰める作業を終わらせた。機械が下の層を吸収するたびに、人間は一つ上の層へと移動してきた――メモリ管理からロジック管理へ、サーバー管理からシステム管理へ。
このパターンはあまりに一貫しているので、ほとんど法則と言っていい。自動化のコストが安くなったものは、そこに価値がある場所ではなくなり、価値は今いちばん希少なものへと移っていく。長い間、その希少なものとは「実装」――意図を動くコードへと変える作業だった。そして、それこそがまさに今、エージェントが吸収しつつある層なのだ。
エージェントは同僚であって、より速いオートコンプリートではない
つい犯しがちな誤りは、コーディングエージェントを「より優れたオートコンプリート」に分類してしまうことだ。両者はまったく異なる種類のものである。オートコンプリートはあなたの文を仕上げてくれるだけだが、エージェントは目標を受け取り、それに対して行動する――あなたが設定したガードレールの中で、何をどう変更するかを決め、そして実際に実行する。それは賢いキーボードというより、たまたまリポジトリの中に住んでいる同僚のようなものだ。issueを渡せば、エージェントはどこかへ行き、戻ってきたときにはmerge requestを携えている。
これこそがTaskGoblinを作った際の設計思想だ。エディタの中のパネルではない。あなたのチームがすでに使っているツールの中にいるチームメイトである――issueを割り当てられ、スレッド内でメンションされ、pull requestをレビューする。sandbox内で実装を行い、あなたがレビューできる成果物を持ち帰る。やり取りの単位はキー入力ではなく、タスクなのだ。
一日の始まりはこう変わっていく
その延長線上を一歩進めると、働く一日の形が変わっていく。誰もやりたがらない依存関係のアップデートは、夜のうちに済んでしまう。不安定なテストはスタンドアップの前に刈り込まれる。仕様がしっかり固まった機能は、足場となるコードとテストがすでに用意されたドラフトのpull requestとして届き、あとはタイピングではなく判断を待つだけになる。プロダクトマネージャーがチケットを動かせば、誰かが目にする頃には変更の最初のバージョンがすでに開かれている。骨の折れる仕事という名のベルトコンベア――エンジニアの一週間の多くを占める、必要だが華やかさのない作業――が、ようやく減速し始める。
残るのは、これまでもずっと本当の仕事だった部分だ。何を作るべきかを決めること、一見自明に見える実装がどこかで微妙に間違っていることに気づくこと、どんな量の生の能力をもってしても供給できないセンスと文脈を保持すること。エンジニアは著者から編集者へと移行する――あらゆる行を自ら生み出す存在から、何が生み出されるかを指揮し、それが正しいかどうかを裁定する存在へ。
問いは「できるか」から「やるべきか」へと変わる
実装が安く速くなると、制約となるのは「作れるかどうか」ではなく「作る価値があるかどうか」へと変わる。反復のコストが十分に下がることで、デザインレビューは探索的なものになる――一つの案について議論する代わりに、三つのバージョンを試す。一人あたりのレバレッジが上がったことで、小さなチームがずっと大きなチームに匹敵する成果を出せるようになる。そして競争優位性もそれに応じて移っていく――誰が実行できるかから離れ、何を実行すべきかを見極めるセンス、それが誰のためのものかを理解する共感力、そしてエージェントが取り組めるほど明確に問題を言語化する力を持つ者へと。
これが、あらゆる騒がしい議論の下に横たわる本当の再定義だ。「私たちは今やジュニア開発者の群れをマネジメントしているだけだ」というのは不安に満ちたバージョンの見方であり、より真実に近いのは、レバレッジが移動し、それに伴って希少なスキルも移動したということ――上へ、判断力へと。
人間はどこに留まるのか
この未来を誠実に描くなら、人間が消え去るふりはしない。むしろ逆だ。機械が実装を吸収するにつれて、人間の決定はより重大なものになっていく――軽くなるのではない。なぜなら、それぞれの決定が今やはるかに多くの成果物を左右するからだ。だからこそTaskGoblinは、意図的にマージという工程に人間を残している――エージェントはコードを書き、変更をレビューするが、決して承認せず、決してマージしない。あるシステムにとって、今この瞬間に何が正しいかという判断は、まさに自動化されない層であり、私たち全員がその層へと上がっていく先なのだ。
ベルトコンベアは減速しつつある。ソフトウェアの次の時代を形作るのが誰なのかを決めるのは、実装できる者ではないだろう――下の層をすべて奪ったのと同じように、機械がその層も奪いつつあるのだから。決め手となるのは、想像力とセンス、そしてこのすべての能力を、本当に作る価値のあるものへと向ける判断力である。