ソフトウェア開発はすべて設計であり、設計の本質は失敗の回避であるという話
本質的な指摘(昔から言われてるけど):
"ソフトウェア開発はすべてが「設計」である" RT: ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か kuranuki.sonicgarden.jp/2013/01/post-1… via @kuranuki
— Dai Fujiharaさん (@daipresents) 1月 21, 2013
これを見て、思い出したのは『橋はなぜ落ちたのか』です。工学史についての名著、であると同時に、工学史に残したい名著。
失敗という概念は設計プロセスの中心となるもので、失敗を避けようと考慮することではじめて、設計の成功が成しとげられる。
- 作者: ヘンリーペトロスキー,Henry Petroski,中島秀人,綾野博之
- 出版社/メーカー: 朝日新聞社
- 発売日: 2001/10
- メディア: 単行本
- 購入: 1人 クリック: 18回
- この商品を含むブログ (11件) を見る
「あ、ソフトウェア開発は設計であり、設計の失敗を避けるためにテスト駆動開発(TDD)が機能する」とひらめきました。
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる (Object Oriented SELECTION)
- 作者: Steve Freeman,Nat Pryce,和智右桂,高木正弘
- 出版社/メーカー: 翔泳社
- 発売日: 2012/09/14
- メディア: 大型本
- 購入: 4人 クリック: 250回
- この商品を含むブログ (21件) を見る
『橋はなぜ落ちたのか』の要旨は「成功した建築様式(アーキテクチャ)は、その成功の連続により適用対象の規模を拡大し、いずれ破綻する」という法則の存在を論証することです。
ぼくはRailsのActiveRecordを思い出しましたw
そういう進化の隘路に落ちってから、次のアーキテクチャが突然変異的に出てくるのも歴史の教訓です。たぶんDCIアーキテクチャが有望。
参考:DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism