責任を外部化できないとスケールしない
Agentic Codingで並列で開発しようとしているのだけどうまくいかない。
(前提として仕事でSaaSのバックエンド開発をしているとする)
エディタやターミナルを複数立ち上げてエージェントに指令を並行で出すところまではできる。しかしそこからできあがったものをデプロイするところで詰まる。
成果物に責任をもってレビューするという工程がどうしても並列化できない。
まずこの前提を疑うかどうか、つまり、成果物のレビューを自分がやるべきではなくAIに任せるようにすべき、と考えるかどうかが問題だ。
成果物のレビューを自分自身の責任で持ち続ける限りはそこがボトルネックになる。現になっている。ここのステップを短縮しようとすると責任を外部化してAIに委譲しなければならない。そしてそれを実現するために「AIに検証可能なツールをもたせる」という方法がさかんにいわれている。これは、ステートレスなシステムだったらこのやり方がやりやすいと思う。つまり、不具合があったら単にロールバックすればすむシステムだ。
私がやってるような仕事はステートレスなシステムではない。データの更新が常に走り、そのデータそのものが最大の資産であるSaaSをつくって運用している。そうしたステートフルなシステムだと、不具合でサービスの停止やデータの欠損を招いてしまうとその復旧のために追加の仕事(コスト)が発生して、かえって効率が悪化してしまう。
すべての不具合を100%防げる訳では無いが、いまのところは人間の自分自身がレビューすることで防げる不具合(仕様バグを含む)がかなりある。だから現状では成果物の品質責任をAIに完全に任せてしまうことはできない。
不具合というのは、コードとしてのバグだけでなく、想定と違う仕様・挙動になっているという「仕様バグ」がかなりの割合を占めると思っている。これは、プロダクトをどうしたいかという意思そのものだから、そうしたプロダクトに関するコンテキストをすべてAIが参照できてその優先順位を判断できるようになればAIにすべて任せられるかもしれないが、そうするようになるのはまだ何ステップも必要だと思う。
長くなったのでまた明日以降に続きを(別の日記として)書く。