AI時代の上流工程 — コードが安くなると何が価値になるか
実装コストが下がると、費用の内訳のどこが残り、何が相対的に高くなるのか。決める費用と手戻り費用の関係を式で押さえたうえで、AIに投げる仕様を『意図の非可逆圧縮』として設計する方法を、前提知識ゼロから解説します。
比喩: 写植が消えた日に、編集者は失業したか
かつて印刷物の文字を並べるのは、写植という専門職の仕事でした。パソコンでの組版が普及すると、この工程の費用はほとんどゼロに落ちました。
では出版社から人がいなくなったかというと、そうはなりませんでした。安くなったのは「文字を並べる工程」であって、「何を載せるか決める工程」ではなかったからです。むしろ誰でも組版できるようになったぶん、世に出る印刷物の量が増え、読むに値するものを選ぶ力のほうが希少になりました。
いま、コードを書く工程で同じ変化が起きています。「どう書くか」を一行ずつ考える時間は減り、減っていないのは「何を作るか」「何が完成の合図か」を決める時間です。この変化を、感覚論ではなく費用の内訳として分解します。
直感: ボトルネックは消えず、隣へ移る
工場のラインを思い浮かべてください。工程が直列に並んでいて1つだけが極端に遅いとき、全体の速度はその工程で決まります。そこに機械を入れて10倍速くしても、所要時間はゼロにはなりません。次に遅い工程が、新しいボトルネックとして表に出てくるからです。
実装が速くなった現場で起きているのはこれです。「作る」が速くなったぶん、前後の工程が相対的に目立つようになりました。要求のあいまいさを潰す時間、どの案を採るか決める時間、出てきたものが正しいか確かめる時間です。
そしてもうひとつ副作用があります。速く作れるということは、間違った方向へも速く進めるようになったということです。手作業の時代は実装の遅さが減速帯として働き、作りながら「これは要らないのでは」と気づく余白がありました。その余白が縮んだぶん、方向を決める作業を前倒しで、意識的にやる必要が出てきます。
仕組み: 費用を3つに割ってみる
上流工程の価値を口で語ると精神論になります。式にすれば構造が見えます。ある機能を届けるまでの総費用を、次のように分けます。
は総費用、 は決める費用(要求を聞き、選択肢を比べ、判断する)、 は作る費用(実装とその周辺作業)、 は仕様が間違っている確率、 は間違いが後で発覚したときのやり直し費用です。
この式が言っているのは要するに、機能を1つ届けるまでにかかるものは「決める費用」と「作る費用」と「ときどき発生するやり直し費用」の足し算にすぎない、ということです。やり直しに を掛けるのは毎回起きるわけではないからで、 は「期待されるやり直し費用」です。
実装が安くなるとは が小さくなることです。 はほとんど変わりません。要求を聞く時間も選択肢を比べる時間も、道具では代替しにくいからです。 の一部は と一緒に下がりますが、間違いが下流に伝播してから見つかるという構造は残ります。詳しくは上流工程を1からで扱っています。
が十分小さくなった世界では、総費用はおおよそ です。ここで を少し動かしたとき がどれだけ動くかを見ます。
この式が言っているのは要するに、仕様の誤り確率 を少し下げたとき、浮く費用は「下げた分 × やり直し費用 まるごと」だ、ということです。上流の改善が効くかどうかは の下げ幅だけでは決まらず、 が掛かってはじめて金額になります。 が大きい現場ほど、つまり間違いが見つかるのが遅いほど、上流に1時間かける価値が大きい。逆に間違いが5分で分かる実験なら、先に作ったほうが安い。上流の厚さは信条ではなく の大きさで決めます。
方向がずれていると、速さは損になる
もう一つ、量と方向は別の話だという点を押さえておきます。ベクトルで書くと、意図の方向に対する成果の大きさは射影で表せます。
は作った量、 は意図と成果のあいだの角度です。角度がゼロなら作った量がそのまま成果になり、90度なら量をいくら増やしても成果はゼロ、90度を超えると負になります。負とは比喩ではなく、消すべきコードや剥がすべき依存として実際に費用が出る状態です。
この式が言っているのは要するに、成果として数えられるのは作った量そのものではなく、そのうち意図の向きに沿っている分だけだ、ということです。
実装が安くなるとは、 を大きくしやすくなることです。 が小さければ成果は比例して増えますが、 が大きいときは損失も比例して増えます。速く走れることが利益になるのは、向きが合っているときだけです。
コメント
コメントにはログインが必要です