Featured image of post なぜいま「車輪の再発明」が必要なのか――外部不経済の肥大化とAIによる主権の回復

なぜいま「車輪の再発明」が必要なのか――外部不経済の肥大化とAIによる主権の回復

「車輪の再発明をするな」という言葉は、ソフトウェア開発の世界において長らく絶対的な金科玉条として扱われてきました。すでに先人が作り上げ、十分に検証されたライブラリやフレームワークがあるならば、それをそのまま使うのが最も効率的であり、同じものをゼロから自作するのは愚行であるという教えです。

しかし現代において、この原則に強い違和感を抱く開発者が増えています。なぜ、自明に思えたこの教訓は通用しなくなってきたのでしょうか。その背景には、かつて前提とされていた技術的・経済的な前提の崩壊と、ソフトウェア産業が抱える構造的な病理が存在しています。

崩壊した「4つの暗黙の前提」

「車輪の再発明をするな」という教訓が合理性を持っていた時代には、語られることのなかった4つの暗黙の前提がありました。

第一に、道具は不活性な客体であるという前提です。かつての部品やライブラリは、外部からの入力に対して物理的・決定論的にのみ応答する道具でした。部品そのものが独自の意図を持って外部と通信することなどなく、操作者が力を加えた方向にのみ回転する中立的な存在でした。しかし現代のコンポーネントは、常時ネットワークに接続し、自律的にテレメトリを送信したり外部リソースを読み込んだりする動的な存在へと変質しています。

第二に、提供者と利用者の利害が一致しているという前提です。部品の製造者の目的は「摩擦が少なく壊れにくい車輪を作ること」であり、利用者の「速く移動したい」という目的と完全に一致していました。しかし現代のプラットフォームやライブラリの多くは、行動データの収集や自社サービスへの誘導、囲い込みといった別の手段で収益化されています。提供者の利益と利用者の利益の間に、構造的な利益相反が生じているのです。

第三に、所有権と制御権が完全に手元へ移るという前提です。一度手に入れた部品は完全に利用者のコントロール下にあり、外部から勝手に改造されたり止められたりすることはありませんでした。ところが現代では、クラウド依存や自動更新、利用規約の変更により、主権が常にベンダー側に握られています。ブラックボックス化が進んだ結果、意図しない挙動を遮断する難易度が跳ね上がりました。

第四に、枯れた技術は静的に完結しているという前提です。車輪が円形であるように、基礎的な技術は一度完成すればそれ以上形を変える必要がありません。しかし現代のソフトウェアエコシステムでは、機能追加を続けること自体が自己目的化し、単機能で完成していたはずの部品に過剰な機能が継ぎ足され続ける傾向があります。

道具の官僚制化と即応性の喪失

車輪が使えなくなった理由は、商業主義や悪意による侵食だけではありません。もう一つの深刻な要因は、過剰な抽象化と統制による最小実行単位の肥大化です。

たとえば、ローカル環境でファイルの一覧を確認するだけの ls コマンドを実行する場面を考えてみます。もしこの単純な操作を行うために、まず中央認証基盤にログインしてトークンを取得し、ロールベースのアクセス制御を適用し、実行のたびに中央サーバへ正当性を問い合わせ、結果が10階層にもネストされたJSONで返却されるとしたらどうでしょうか。さらに「今後は ls は非推奨となるため、機能は全く同じだが構文が異なる別のコマンドGet-Childitemへの移行を推奨する」と通告されたら、道具としての即応性は完全に失われます。

これは決して極端な誇張ではありません。エンタープライズ向けの統制要件やゼロトラスト、分散トレーサビリティといった「システム全体のガバナンス」を末端の最小プリミティブにまで過剰適応した結果、現代のソフトウェアは極めて官僚制化しています。

道具の本質とは、人間が意図した入力を遅延なく決定論的に処理する身体の延長肢であるはずです。しかし、全体最適の名のもとに過剰な儀式を課された現代の車輪は、道具としての扱いやすさを著しく損なっています。

ソフトウェアに蔓延する「外部不経済」の構造

これらの現象を俯瞰すると、現代のソフトウェアが抱える本質的な問題は、経済学でいう外部不経済の一種であると捉えることができます。

外部不経済とは、ある主体の行動に伴うコストが、取引関係の外にいる第三者へ一方的に押し付けられる現象を指します。古典的な例では工場の公害が挙げられますが、現代のソフトウェア産業でも全く同じ構図が成立しています。

巨大プラットフォームやフレームワークの提供者、あるいは社内の中央統制部門は、機能追加や監査要件の厳格化をほぼゼロの限界費用で行うことができます。それによって提供者側は、データ資産の蓄積や責任回避、モダン化の実績といった内部便益を享受します。

一方で、その変更によって生じる物理的・認知的コストは、すべて末端の開発者や利用者に転嫁されます。何億回も無駄に消費されるCPUサイクル、肥大化するメモリ消費量、複雑化したドキュメントを読み解く時間、そして意味のないAPI変更に追従するための膨大な改修工数です。

物理社会であれば公害に対して排出規制やピグー税(課税によるコストの内部化)が機能しますが、ソフトウェアの世界にはそれが存在しません。オープンソースの免責条項や利用規約によって提供側の法的責任は免除されており、さらに依存関係によるスイッチングコストが高すぎるため、利用者は不条理なコストを甘受せざるを得ない構造になっています。

既存の部品を採用するということは、いまや「他者が排出した外部不経済を無条件で引き受けること」と同義になりつつあります。

AIエージェントと「使い捨ての車輪」という脱却路

他者が作った車輪が外部不経済の塊であるならば、自分たちでシンプルな車輪を作ればよいはずです。しかしこれまでそれができなかったのは、人間がコードを書き、テストし、保守するコストがあまりにも高かったからです。

$$\text{自作するコスト(人間の莫大な時間)} > \text{既製品の不条理を受け入れるコスト}$$

この不等式が成り立っていたため、開発者はどれほど扱いにくい車輪であっても、歯を食いしばって既存のコンポーネントを採用し続けてきました。

しかし、自律型AIエージェントによるコーディングというパラダイムシフトが、この力学を根底から覆しつつあります。コード生成の限界費用が人間の人件費から安価な計算資源へと置き換わったことで、損益分岐点の逆転が起きています。

$$\text{AIに車輪を作らせるコスト} < \text{既製品の不条理を飼い慣らすコスト}$$

この変化は、ソフトウェア工学における車輪の定義そのものの変容をもたらします。

これまでの車輪は、万人のあらゆる用途に対応するために巨大化し、長期にわたってメンテナンスされ続ける「共有の固定資産」でした。それゆえに過剰な抽象化が必要となり、商業的意図やガバナンスが入り込み、外部不経済を生み出す温床となっていました。

しかしAI時代における車輪は、特定の手元の文脈のためだけに作られ、役目を終えれば破棄されるディスポーザブル(使い捨て)な道具へと変化します。「今このデータを変換するだけ」の数十行から数百行のピュアなコードであれば、外部依存を持たず、余計な通信もせず、将来の互換性を考慮して複雑化させる必要もありません。仕様が変われば、AIに文脈を与えてその場で再度生成させれば済むからです。

「一度作ったものは汎用化して再利用しなければならない」というドグマこそが、ソフトウェアを肥大化させてきた元凶でした。コード生成コストが極小化した世界では、再利用性の追求は美徳ではなく、過剰な複雑性を招くリスクになります。

現代においてAIの手を借りて行われる「車輪の再発明」とは、過去への退行ではありません。それは、中央集権的で肥大化したソフトウェア生態系が撒き散らす外部不経済を遮断し、自分たちの手に主権と簡潔性を取り戻すための極めて合理的な防衛手段なのです。

要点のまとめ

  • 「車輪の再発明をするな」の前提崩壊:道具の中立性、利害の一致、完全な制御権、枯れた技術の安定性という4つの暗黙の前提が崩れ、既存の車輪を採用するリスクが増大した。
  • 道具の官僚制化:全体統制や過剰な抽象化を優先した結果、単純なタスクに対しても多層な儀式と巨大なオーバーヘッドが強制され、即応性が損なわれている。
  • ソフトウェアにおける外部不経済:提供者側がゼロコストで導入した仕様変更や統制のコスト(リソース浪費、認知負荷、保守工数)が、末端の開発者やユーザーへ一方的に押し付けられている。
  • AIによる再発明コストの激減:コード生成コストが人間の時間から計算資源へ移行したことで、「不条理な既製品を飼い慣らすコスト」が「自作するコスト」を上回る逆転現象が発生した。
  • 共有の固定資産から使い捨ての道具へ:再利用性のドグマから脱却し、必要なときに必要な機能だけを持つ最小限のコードをAIに生成させることが、外部不経済を回避する有効な手段となっている。
AIによる技術記事 備忘録.
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。