石橋秀仁(zerobase)書き散らす

まじめなブログは別にあります→ja.ishibashihideto.net

ソフトウェア開発はすべて設計であり、設計の本質は失敗の回避であるという話

本質的な指摘(昔から言われてるけど):

これを見て、思い出したのは『橋はなぜ落ちたのか』です。工学史についての名著、であると同時に、工学史に残したい名著。

失敗という概念は設計プロセスの中心となるもので、失敗を避けようと考慮することではじめて、設計の成功が成しとげられる。

橋はなぜ落ちたのか―設計の失敗学 (朝日選書 (686))

橋はなぜ落ちたのか―設計の失敗学 (朝日選書 (686))

「あ、ソフトウェア開発は設計であり、設計の失敗を避けるためにテスト駆動開発(TDD)が機能する」とひらめきました。

実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる (Object Oriented SELECTION)

実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる (Object Oriented SELECTION)

『橋はなぜ落ちたのか』の要旨は「成功した建築様式(アーキテクチャ)は、その成功の連続により適用対象の規模を拡大し、いずれ破綻する」という法則の存在を論証することです。

ぼくはRailsActiveRecordを思い出しましたw

そういう進化の隘路に落ちってから、次のアーキテクチャが突然変異的に出てくるのも歴史の教訓です。たぶんDCIアーキテクチャが有望。

参考:DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism