JA EN
体系開発プロセス
·★ 会員·11分で読めます

AI時代の上流工程 — コードが安くなると何が価値になるか

実装コストが下がると、費用の内訳のどこが残り、何が相対的に高くなるのか。決める費用と手戻り費用の関係を式で押さえたうえで、AIに投げる仕様を『意図の非可逆圧縮』として設計する方法を、前提知識ゼロから解説します。

対象textタスクsystems

比喩: 写植が消えた日に、編集者は失業したか

かつて印刷物の文字を並べるのは、写植という専門職の仕事でした。パソコンでの組版が普及すると、この工程の費用はほとんどゼロに落ちました。

では出版社から人がいなくなったかというと、そうはなりませんでした。安くなったのは「文字を並べる工程」であって、「何を載せるか決める工程」ではなかったからです。むしろ誰でも組版できるようになったぶん、世に出る印刷物の量が増え、読むに値するものを選ぶ力のほうが希少になりました。

いま、コードを書く工程で同じ変化が起きています。「どう書くか」を一行ずつ考える時間は減り、減っていないのは「何を作るか」「何が完成の合図か」を決める時間です。この変化を、感覚論ではなく費用の内訳として分解します。

直感: ボトルネックは消えず、隣へ移る

工場のラインを思い浮かべてください。工程が直列に並んでいて1つだけが極端に遅いとき、全体の速度はその工程で決まります。そこに機械を入れて10倍速くしても、所要時間はゼロにはなりません。次に遅い工程が、新しいボトルネックとして表に出てくるからです。

実装が速くなった現場で起きているのはこれです。「作る」が速くなったぶん、前後の工程が相対的に目立つようになりました。要求のあいまいさを潰す時間、どの案を採るか決める時間、出てきたものが正しいか確かめる時間です。

そしてもうひとつ副作用があります。速く作れるということは、間違った方向へも速く進めるようになったということです。手作業の時代は実装の遅さが減速帯として働き、作りながら「これは要らないのでは」と気づく余白がありました。その余白が縮んだぶん、方向を決める作業を前倒しで、意識的にやる必要が出てきます。

仕組み: 費用を3つに割ってみる

上流工程の価値を口で語ると精神論になります。式にすれば構造が見えます。ある機能を届けるまでの総費用を、次のように分けます。

C=D+B+pRC = D + B + p\,R
(1)

CC は総費用、DD は決める費用(要求を聞き、選択肢を比べ、判断する)、BB は作る費用(実装とその周辺作業)、pp は仕様が間違っている確率、RR は間違いが後で発覚したときのやり直し費用です。

この式が言っているのは要するに、機能を1つ届けるまでにかかるものは「決める費用」と「作る費用」と「ときどき発生するやり直し費用」の足し算にすぎない、ということです。やり直しに pp を掛けるのは毎回起きるわけではないからで、pRp\,R は「期待されるやり直し費用」です。

実装が安くなるとは BB が小さくなることです。DD はほとんど変わりません。要求を聞く時間も選択肢を比べる時間も、道具では代替しにくいからです。RR の一部は BB と一緒に下がりますが、間違いが下流に伝播してから見つかるという構造は残ります。詳しくは上流工程を1からで扱っています。

BB が十分小さくなった世界では、総費用はおおよそ CD+pRC \approx D + p\,R です。ここで pp を少し動かしたとき CC がどれだけ動くかを見ます。

Cp=R\frac{\partial C}{\partial p} = R
(2)

この式が言っているのは要するに、仕様の誤り確率 pp を少し下げたとき、浮く費用は「下げた分 × やり直し費用 RR まるごと」だ、ということです。上流の改善が効くかどうかは pp の下げ幅だけでは決まらず、RR が掛かってはじめて金額になります。RR が大きい現場ほど、つまり間違いが見つかるのが遅いほど、上流に1時間かける価値が大きい。逆に間違いが5分で分かる実験なら、先に作ったほうが安い。上流の厚さは信条ではなく RR の大きさで決めます。

方向がずれていると、速さは損になる

もう一つ、量と方向は別の話だという点を押さえておきます。ベクトルで書くと、意図の方向に対する成果の大きさは射影で表せます。

成果=vcosθ\text{成果} = |v|\cos\theta
(3)

v|v| は作った量、θ\theta は意図と成果のあいだの角度です。角度がゼロなら作った量がそのまま成果になり、90度なら量をいくら増やしても成果はゼロ、90度を超えると負になります。負とは比喩ではなく、消すべきコードや剥がすべき依存として実際に費用が出る状態です。

この式が言っているのは要するに、成果として数えられるのは作った量そのものではなく、そのうち意図の向きに沿っている分だけだ、ということです。

実装が安くなるとは、v|v| を大きくしやすくなることです。θ\theta が小さければ成果は比例して増えますが、θ\theta が大きいときは損失も比例して増えます。速く走れることが利益になるのは、向きが合っているときだけです。

FIG 1たとえ話として。片方を「意図」、もう片方を「実際に作ったもの」だと思って回してみてください。長さ(=実装量)を伸ばしても、角度がついていれば射影は伸びません

ここから、では何をどう書けばいいのかに入ります。有用な捉え方が一つあります。仕様書とは、頭の中にある意図を文字列へ圧縮したものであり、読み手はそれを解凍して実装する、という見方です。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

コメント

コメントにはログインが必要です