Structural Analysis 6

翻訳労働の発見——大量の人が要った本当の理由

ソフトウェア開発の70-80%は、本来の仕事ではなく、貧弱な型による翻訳労働だった。

なぜ大量の人が要ったのか

ソフトウェア開発は、なぜこんなに人が要るのか。

業務システムを一つ作るのに30人〜数百人。Webサービスを一つ立てるのに10人〜数十人。なぜか。

通説では「ソフトウェアは複雑だから」「業務要件が多様だから」「品質保証が必要だから」と説明される。全部、表面的な観察に過ぎない

本当の理由は構造的だ。プログラミング言語の型が貧弱で、世界の構造を毎回手で翻訳する必要があったから——これが大量の人が要った根本原因である。

翻訳労働の正体

整数・実数・文字列しか扱えない言語で、現実のソフトウェアを作るには、世界の構造を細かく翻訳し続ける必要がある:

翻訳の連鎖:
現実世界(顧客、注文、商品) ドメインクラス(手で定義)
ドメインクラス ↔ DBの行 ORM Entity(手で対応付け)
DBの行 ↔ HTTP API DTO(Data Transfer Object、手で定義)
HTTP API ↔ JSON シリアライザ/デシリアライザ(手で書く)
JSON ↔ フロントエンド状態 ViewModel(手で定義)
フロントエンド状態 ↔ HTML/DOM コンポーネント(手で書く)

各レイヤー間で「翻訳」が発生する。翻訳には:

  • コードを書く労働
  • 型を多重に定義する労働
  • バリデーションを書く労働
  • テストを書く労働
  • スキーマを多重に管理する労働(DB、API、フロント、ドキュメント)
  • 変更時に全レイヤーを揃える労働
  • レイヤー間で齟齬が出ないか確認する労働

全てが「実装に必要な労働」ではなく、「型が貧弱だから必要な翻訳労働」である。

典型的プロジェクトの内訳

伝統的なJava/C#プロジェクトのチーム構成を見てみよう:

役割 主な仕事 これは何の労働か
DB設計者 テーブル設計、ER図 DB ↔ ドメインの翻訳
バックエンド開発 ORM、REST API、サービス層 DB ↔ APIの翻訳
フロントエンド開発 React、状態管理、UI結合 API ↔ DOMの翻訳
API設計者 OpenAPI、契約書類 翻訳の規約管理
QA テストケース、シナリオテスト 翻訳の整合性確認
インフラ / DevOps デプロイ、監視 (これは正当な労働)
アーキテクト 全レイヤー整合性 翻訳の俯瞰管理
PM / SE 上記の調整 翻訳労働者の調整

ほぼすべての役割が「型の貧弱さによる翻訳労働」から生まれている。本来やりたい仕事(業務の問題を解く)の周辺に、翻訳労働者が何十人も並ぶ構造である。

これが「ソフトウェア開発はなぜこんなに人が要るのか?」の答えだ。技術的に必要なのではなく、言語が貧弱だから必要だった

工数の分解——70-80%が翻訳労働

実際のプロジェクト工数を経験的に分解すると:

工数の種類 比率(推定)
ドメインロジック本体(本当に解くべき問題) 10-20%
翻訳労働(DB ↔ API ↔ UI ↔ ファイル ↔ ...) 40-50%
翻訳労働のテスト 15-20%
翻訳労働の管理(meeting、レビュー、仕様書) 15-20%
本物のテストと運用 5-10%

全体の70-80%が翻訳労働とその管理である。本当に価値を作っている部分(ドメインロジック)は10-20%しかない。

考えてみてほしい。30人プロジェクトのうち、21〜24人は翻訳労働をしている。本物の問題解決をしているのは6〜9人だけだ。

これがソフトウェア業界の生産性が異常に低い理由でもある。労働の8割が、実は問題解決と無関係だからだ。

AIネイティブな構造ではどうなるか

Python + AIネイティブ基層(前章で扱った段階4の型)で同じことをやると、翻訳労働がほぼ消える:

# DB → DataFrame → JSON → HTML が一本の流れ
                df = pl.read_database("SELECT * FROM orders WHERE month = ?", params=[m])
                summary = df.group_by("region").agg(pl.col("amount").sum())
                data = summary.to_dicts()                    # JSON 化、即終了
                html = template.render(rows=data)            # HTML 化、即終了
                

ORMクラスもDTOもViewModelも要らない

消える翻訳労働:
DB ↔ DataFrame 1関数(read_database)
DataFrame ↔ JSON 1メソッド(.to_dicts())
JSON ↔ HTML 1テンプレート
スキーマ管理 DataFrameの.schemaが持っている、多重管理不要
テスト 翻訳がないので、翻訳のテストも不要

さらに、AIに「データから月次合計を出すPythonを書いて」と頼めば、上のコードが数秒で出てくる。人間がやるのは「何を出したいか」を決めることだけ

結果:30人プロジェクトが1〜3人で済む。Streamlit / Gradio / Flet を使えば、Web UI まで含めて Python 一つで完結する。

認知科学側からの呼称——これは「neurosymbolic」である

ここで使っているアーキテクチャには、認知科学・AI研究の世界で既に名前がある。neurosymbolic AI(神経シンボリック AI)——ニューラルネットワークの統計的パターン認識と、古典的シンボリック AI(ルール、ループ、条件分岐、定理証明)を組み合わせる構成だ。Gary Marcus(NYU 名誉教授)が 2012 年から一貫して主張してきた立場で、現実に最先端のシステムで起きていることでもある:

構成要素 役割
神経側(neural) パターン認識・近似・自然言語理解 LLM(Claude、GPT、Gemini)
記号側(symbolic) 厳密・検証可能・構造を持つ実行 Python、pandas、Markdown、Parquet、SQL
巻き合わせ(harness) 両者を一つのワークフローに統合 Claude Code、Jupyter、業務スクリプト

つまり翻訳労働の消失は、純粋な LLM の進歩ではなく、neurosymbolic 構成の成熟によって起きている

  • 数学オリンピックで金を取った AI システムは、定理証明器(lean 等)を併用した neurosymbolic 構成
  • Claude Code が優れているのも、LLM の周りに symbolic harness(Python インタプリタ、ファイルシステム、git)があるから
  • LLM 単独では数千万行のコードベースを正確に扱えない——記号側が必要

我々が第二部 第4章で「AI 革命は二層同時の変化」と書いたのは、この neurosymbolic 構成のことだった。Layer 1(LLM)と Layer 2(Python / Markdown / DataFrame / Parquet)が揃って初めて翻訳労働が消える——Marcus 用語と我々の用語は、同じ構造を別の角度から記述している。

逆に言えば、「純粋な LLM をスケールすれば AGI に至り、すべてが解決する」というスケーリング仮説の上で待っているだけでは、翻訳労働は消えない。我々が必要なのは、Python という記号側を自分で書ける能力——それが第二部 第5章で扱った「Python は AI ネイティブ言語」の意味でもある。

なぜこの構造が見えていなかったか

「ソフトウェア開発に人が要る」は当然のこととして受け入れられてきた。誰も「翻訳労働」と「本物の労働」を分けて数えてこなかった。

理由は単純で、両方を区別する基準が無かったからだ。段階3の言語の世界では、クラス定義もORMもDTOもViewModelも「必要なコード」として扱われた。翻訳労働だと気づくには、段階4の世界を見る必要がある——比較対象がないと、自分が翻訳労働をしていることに気づけない。

これは、印刷術が登場する前の写本工房と同じだ。修道院の写本職人は、自分が「手で写す労働」をしているとは思っていなかった。本を作るとはそういうものだと思っていた。印刷術が出現して初めて、写本労働が「印刷で消える労働」だったと事後的に分かった

ソフトウェアの翻訳労働も同じだ。AIネイティブ基層が出現して初めて、これまでの労働の70-80%が翻訳労働だったと分かる

SIer業界の存在理由が見える

ここでSIer(システムインテグレーター)業界の経済的存在理由が、構造的に見える:

SIer業界が成立する因果鎖:
言語の型が貧弱(primitive型のみ)
翻訳労働が大量に必要
大量の労働者(プログラマ)が必要
労働者を集約する組織が必要(SIer)
組織を運営する階層が必要(PM、SE、リーダー、メンバー)
階層管理を支える契約構造が必要(多重請負、人月計算、検収)
SIer業界の経済モデルが成立

全部、ステップ1(型の貧弱さによる翻訳労働需要)から派生している。SIer業界の存在理由は、この翻訳労働の需要にあった

AIネイティブ基層 + LLMが翻訳労働を消すと、ステップ2〜6が全部不要になる。SIer業界が構造的に消滅する——これがその正確なメカニズムである。

「AIが仕事を奪う」議論の取り違え

世間でよく言われる「AIが仕事を奪う」は、構造的に取り違えている。AIが奪うのはコーディングではなく、翻訳労働である:

仕事の種類 AI時代の運命
ドメインを理解する(本物の仕事) AIが手伝う、人間が中心で残る
業務分析、要件整理 残る、AIが補助
アーキテクチャ判断 残る、AIが補助
DB ↔ API ↔ UI の翻訳コード AIが書く、人間が確認
DTO / ORM Entity / ViewModelの定義 AIが書く
CRUDの繰り返しコード AIが書く
テストの定型部分 AIが書く
上記を管理するPM / SE 大半が不要

翻訳労働はAIネイティブ基層 + LLMで消える。本物の労働(問題を解く、意思決定する)は残るが、それは元々10-20%しかなかった。残りの70-80%が消える。

つまり「AIで仕事が減る」のではなく、「言語の貧弱さによって生まれていた人為的な労働需要が、本来の水準に戻る」——これが正確な記述である。

ビルダーの台頭——個人レベルでの帰結

翻訳労働が消えると、個人で完結できる範囲が劇的に広がる

これまで30人で作っていたシステムが、1〜3人で作れる。これまで「専門家チームに発注」だった仕事が、「自分で作る」になる。AIネイティブな仕事の作法を持つ個人は、SIerに発注する顧客から、自ら作るビルダーへ転換できる。

業務担当者 + AI + Python で、業務システムが作れる。経理担当者 + AI + DuckDB で、会計分析ツールが作れる。一人の専門家 + AI で、複数の専門領域を兼ねられる。

これは前掲第二部 第1章「AIと個人事業」で書いた「1人+AI = 大企業相当」の構造的な根拠でもある。型が拡張され、翻訳労働が消え、個人の能力範囲が拡張する——この三段で「個人=企業」が成立する。

この章の結論——翻訳労働を見ない限りAI革命は理解できない

ソフトウェア開発の大量人員は、技術的必然ではなく、型の貧弱さによる人為的な需要だった。これを正確に認識しないと、AI時代の構造変化を正しく理解できない。

ソフトウェア開発の70-80%は翻訳労働だった。
ドメインロジック本体は10-20%しかない。
翻訳労働は、言語の型が貧弱だから人為的に発生していた。
AIネイティブ基層+LLMが翻訳労働を消すと、本物の労働だけが残る。
30人プロジェクトは1〜3人になる。
SIer業界の存在理由が消える。
これは「仕事を奪う」のではなく、「本来不要だった労働需要が消える」だけだ。

次章では、この翻訳労働需要が社会全体にどんな構造を作ってきたかを見る。IT革命の本当の社会的帰結は何だったのか——それは新しい封建制の建設だった、という構造分析に入る。

← 前: 型とPython——なぜAIネイティブ言語の中心になったか 次: 解体される封建制——ビルダーの台頭 →

翻訳労働を見ない限り、AI時代の構造変化は理解できない。

「AIが仕事を奪う」議論は焦点を外している。AIが消すのは、貧弱な型によって人為的に生まれていた翻訳労働である。本物の仕事は残る。

AISeed — 生物多様性・食料・AIと暮らし(Facebook)