AIで実装が10倍速くなって、「見積もり」が分からなくなった
30年間、見積もりを作ってきた。
この機能なら何人日。
この規模なら何人月。
エンジニアの見積もりというのは、要するに「実装にかかる時間」を金額に換算する作業である。
私の頭の中には、30年かけて熟成された換算表があった。
画面一枚でこれくらい。
API一本でこれくらい。
インフラ構築でこれくらい。
この換算表は、長年けっこう正確に機能してきた。
それが今、音を立てて崩れている。
換算表が壊れた日
最近の案件で、AWSのバックエンド環境を自動構築するシステムを作った。
要件定義からAIを使ってCDKのコードを生成する進め方で、実装期間は劇的に縮んだ。
従来の感覚なら数週間クラスの作業が、数日で終わる。
別の案件では、会議中に仕様変更の要望を聞きながら、その場でAIにコードを直させて、画面を見せた。
持ち帰りゼロである。
ありがたい話だ。
ありがたい話なのだが、見積もりを作る側としては、頭を抱えることになる。
30年物の換算表が、使い物にならないのである。
画面一枚、何人日?
分からない。
AIがすんなり書けば1時間だし、こじれれば3日かかる。
しかもどちらに転ぶかは、やってみないと分からないことが多い。
正直者のジレンマ
ここで、生々しい問題が発生する。
実装が10倍速くなったとして、見積もりも10分の1にするべきなのか。
正直にそうすれば、私の売上は10分の1になる。
同じ成果物を納めているのに、である。
かといって、従来通りの人月で見積もれば、今度は「3日で終わる作業に1ヶ月分請求する人」になってしまう。
どちらも、何かが間違っている気がする。
この違和感の正体は、しばらく考えて分かった。
「時間を売る」という商売の前提が、崩れたのである。
人月という単位は、時間と成果がだいたい比例していた時代の発明だ。
優秀な人とそうでない人の差は、せいぜい数倍。
だから時間で課金しても、大きくは外れなかった。
AIは、この比例関係を壊した。
同じ1時間が、生み出す成果において100倍違う世界が来てしまった。
比例しないものを、比例する前提の単位で測る。
崩壊するのは当たり前である。
では、何にお金を払ってもらうのか
時間が売り物にならないなら、何を売るのか。
最近の私は、こう考えている。
売っているのは、実装時間ではなく、判断である。
何を作るべきで、何を作らなくていいか。
この構成で本番の負荷に耐えるか。
AIが出してきたコードは、信用していいか。
セキュリティ的に、まずい穴はないか。
AIは驚くほど速く作る。
しかし「これで良し」と判断して、結果に責任を持つことは、まだできない。
考えてみれば、医者の診察代は、診察時間の長さで決まっていない。
5分の診察でも、その5分の裏に何十年の経験がある。
弁護士も、書面の枚数ではなく、判断の重さで報酬を取る。
エンジニアも、ようやくそちら側に行くのだと思う。
時間を売る仕事から、判断を売る仕事へ。
……と、格好よくまとめたいところだが。
現実は、そんなに格好よくない
実際の商習慣は、まだ人月のままである。
発注側の稟議書には「人月単価」の欄があり、そこを埋めないと話が進まない。
「私が売っているのは判断です」と言っても、経理システムには判断という勘定科目がない。
だから現場では、奇妙な過渡期が続いている。
AIで3日で終わった仕事を、どう請求するか。
正直に3日分にするか。
従来相場の1ヶ月分にするか。
その間のどこかに落とすか。
各自が、自分の良心と相場観の間で、それぞれの落とし所を探っている。
私自身の落とし所は、時間ではなく「何ができるようになるか」で金額の話をすることだ。
この仕組みが動くとこういう価値がある、だからこの金額、という組み立てである。
うまくいくときもあれば、結局人月に換算し直されるときもある。
過渡期とは、そういうものだろう。
換算表の作り直し
30年かけて作った換算表が壊れたのは、正直、少し寂しい。
あれは私の職人としての勘そのものだったからだ。
でも、考えてみれば、これが初めてでもない。
手書きのコードがフレームワークになったとき。
物理サーバがクラウドになったとき。
そのたびに換算表は書き直しになった。
今回は書き直しの幅が、桁違いに大きいだけである。
そして新しい換算表は、たぶん「時間」の表ではなくなる。
何を測る表になるのか、実はまだ、私にもよく分かっていない。
分かっているのは一つだけ。
見積もりに悩んでいる暇があったら手を動かせ、とAIに急かされる時代が、もう来ているということである。