序 — 4本の線と、1つの進行方向
螺旋の歴史 — システム開発はなぜ同じ場所に戻らないのか。 システムアーキテクチャ、言語、データ、そして組織の60年を4本の線で辿る。読了目安: 2〜3時間。各部は独立で読めるが、通読すると1つのテーゼに収束する。
この文書は4本の歴史を編んで語る。言語パラダイム、データベース、アーキテクチャとデリバリー、組織と計測。加えて、4本のどれにも属さずどれにも絡む契約記述の線(XML から JSON、そしてスキーマ駆動生成へ)を、各部の末尾で拾う。4本を別々に読むと流行の振り子に見えるものが、並べて読むと同じ方向へ進む螺旋であることが分かる。その方向とは:
規約(実行時に人が守る)→ 構造(機械が守る) 判断(毎回人が下す)→ 手順(1回の設計に変換する) 職人技(人に宿る)→ 計器(数値契約になる)
3行は同じことを3つの面から言っている。第1行はコードとデータの話、第2行は運用の話、第3行は組織の話だが、どれも「人間の注意力に依存していたものを、依存しない形に変換する」という1つの操作である。この操作を本書では**構造化(structuring)**と呼ぶ。1970年代の「構造化プログラミング」の構造化と同じ語を、意図して使う。あの運動が制御フローに対してやったことを、業界はその後50年かけて、データ・境界・デプロイ・組織に対して繰り返した。
左は人間の注意力が守っていたもの、右は同じものを機械が守る形。どの線も矢印の向きは同じである。
なぜ歴史を読むのか
Section titled “なぜ歴史を読むのか”各時代の概念は、その時代の傷の圧縮である。expand/contract も、適応度関数も、エラーバジェットも、誰かが事故った夜の記憶が規約に固まったものだ。歴史を読むことは、その傷を安く相続することに等しい。傷を知らずに規約だけを受け取ると、規約は「面倒な手順」に見え、いつか誰かが省略する。省略した夜に、傷は再び開く。
もう1つの理由がある。自分の位置を知るためだ。手元のモノリスは第2部(2004-2008)の子であり、移行先は第5部(2021-2026)の構成である。移行とは、ある時代から別の時代への移住だ。 移住者は出発地の言葉と到着地の言葉の両方を話せなければならない。この文書は、その両方の言葉の辞書を兼ねている。
- 急ぐ人は、各部の冒頭の要約と「greenfield の現在形」の枠だけを拾えば、テーゼと現在の対応が取れる
- いま移行を控えている人は、第2部と第5部を先に読み、その間の第3部・第4部で「なぜその道具が生まれたか」を確認するとよい
- 用語の初出には年を添えた。年は「いつ発明されたか」ではなく「いつ業界の共有語彙になったか」を優先している
各部の末尾にある「greenfield の現在形」は、検証ビルド(rikukaInoue/greenfield)の対応物を指す。歴史上の概念と、いま手元にある実装を1対1で結ぶための枠である。