本日はオブジェクト倶楽部夏イベントにて 90 分もの長時間(!)喋らせていただきました。
会場にてお聞きくださった皆様、ありがとうございました。
講演の内容はというと、「創発的設計 (Emergent Design) 」というコンセプトについて講演をさせていただきました。自分は何を学んできたのか、何に学んできたのかを明かにし、いまの理解を立体化しました。「テスト駆動開発を本当に厳格に行うならば3イテレーション程度でアーキテクチャが破綻する」という意見に対する私の考えの表明でもあります。
テスト駆動開発者はテスト駆動開発という手段だけで開発を行っている、つまり先行設計をしない、という誤解に対して、そのようなことはないという (ごく真っ当な) 結論になっています。本当にゼロから設計するというのは思考実験に近い、現実味の薄い議論といえます。それでは私たちの知識や経験自体を否定することにもなってしまうでしょう。テスト駆動開発の強みは開発と共に設計を変えていくことの支え、もっと言えば設計を変える原動力を得ることであり、それは初期の設計が不要ということを言っているのではありません。「完璧な設計はできない」しかし、できないなら設計をやらない、という逆側の極端に振るのも良くない、ということです。
設計の変更にはコストがかかり、そのコストを下げるのがバージョン管理や自動テスト、自動化、リファクタリングです。もちろん有限の時間内でシステムを組む以上、全体として設計の変更量が少ないことに越したことはありません。
良い(と言われる)設計に近い地点から始めたり、近づくためには、良い設計を知っておくことは重要です。自分の道具箱に入れておくことで、自分の「シンプル設計」の持ち札が増えます。
講演では書籍『Emergent Design』から創発的設計のピラミッドを引用し、そのピラミッドを組み上げるもの、そして既にピラミッドの外に出てしまっている状態からピラミッドに戻るための手法の手がかりを発表しました。手がかりとなるのは、実際の現場で遭遇する問題に立ち向かうための三冊です。
これらの本が出てきたことで、あとから良い設計に「近づく」ことが可能になってきたと考えています。手法の実践者が増えてきて、ノウハウや問題点の共有、克服がなされてきていることを示している本だと考えています。
この講演では、たくさんの書籍を参考文献として言及させていただきました。まさに「巨人の肩に乗って」います。参考にした本を列挙してエントリの締めとします。(書籍データは amazon.co.jp から API 経由で取得しました)
Emergent Design: The Evolutionary Nature of Professional Software Development (Net Objectives Lean-Agile Series)
- 作者: Scott Bain
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2008/02/27
- メディア: ハードカバー
- クリック: 31回
- この商品を含むブログ (7件) を見る
パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)
パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)
- 作者: 江渡浩一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2009/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 75人 クリック: 1,306回
- この商品を含むブログ (155件) を見る
テスト駆動開発入門
- 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/09
- メディア: 単行本
- 購入: 45人 クリック: 1,058回
- この商品を含むブログ (162件) を見る
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
- 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 94人 クリック: 3,091回
- この商品を含むブログ (312件) を見る
パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法
パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法
- 作者: ジョシュア・ケリーエブスキー,小黒直樹,村上歴,高橋一成,越智典子
- 出版社/メーカー: 日経BP社
- 発売日: 2005/08/04
- メディア: 単行本
- 購入: 11人 クリック: 313回
- この商品を含むブログ (130件) を見る
プレファクタリング―リファクタリング軽減のための新設計 (THEORY/IN/PRACTICE)
プレファクタリング ―リファクタリング軽減のための新設計 (THEORY/IN/PRACTICE)
- 作者: Ken Pugh,木下哲也,有限会社福龍興業
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/01/16
- メディア: 大型本
- 購入: 3人 クリック: 60回
- この商品を含むブログ (31件) を見る
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
- 作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴之,関富登志
- 出版社/メーカー: 近代科学社
- 発売日: 2000/12
- メディア: 単行本
- 購入: 15人 クリック: 448回
- この商品を含むブログ (54件) を見る
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
- 作者: ロバート・C・マーチン,Robert C. Martin,瀬谷啓介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2008/07/01
- メディア: 単行本
- 購入: 18人 クリック: 586回
- この商品を含むブログ (64件) を見る
Java言語で学ぶリファクタリング入門
- 作者: 結城浩
- 出版社/メーカー: ソフトバンク クリエイティブ
- 発売日: 2007/01/27
- メディア: 大型本
- 購入: 12人 クリック: 189回
- この商品を含むブログ (110件) を見る
オブジェクト指向における再利用のためのデザインパターン
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (202件) を見る
プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集 (Pattern Languages of Program Design選集)
プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集
- 作者: PLoPD Editors,細谷竜一,中山裕子
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2001/07
- メディア: 単行本
- クリック: 62回
- この商品を含むブログ (26件) を見る
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)
- 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 大型本
- 購入: 10人 クリック: 635回
- この商品を含むブログ (143件) を見る
Clean Code アジャイルソフトウェア達人の技
- 作者: Robert C. Martin,花井志生
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/05/28
- メディア: 大型本
- 購入: 27人 クリック: 914回
- この商品を含むブログ (83件) を見る
達人プログラマー―システム開発の職人から名匠への道
- 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/11
- メディア: 単行本
- 購入: 42人 クリック: 1,099回
- この商品を含むブログ (347件) を見る
達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化 (Ascii software engineering series)
達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化 (Ascii software engineering series)
- 作者: デビッドトーマス,マイククラーク,アンドリューハント,David Thomas,Mike Clark,Andrew Hunt,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: アスキー
- 発売日: 2005/03
- メディア: 単行本
- 購入: 3人 クリック: 98回
- この商品を含むブログ (73件) を見る
パターンによるソフトウェア構成管理 (IT Architects’ Archive―ソフトウェア開発の課題)
パターンによるソフトウェア構成管理 (IT Architects’ Archive―ソフトウェア開発の課題)
- 作者: ステファン・P・バーチャック,ブレッド・アップルトン,宗雅彦
- 出版社/メーカー: 翔泳社
- 発売日: 2006/10/24
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 92回
- この商品を含むブログ (36件) を見る
アンチパターン―ソフトウェア危篤患者の救出
- 作者: W.J.ブラウン,3,Hays W. McCormick,Raphael C. Malveau,Thomas J. Mowbray,William J. Brown,岩谷宏
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2002/07
- メディア: 単行本
- クリック: 35回
- この商品を含むブログ (25件) を見る
Code Reading―オープンソースから学ぶソフトウェア開発技法
Code Reading―オープンソースから学ぶソフトウェア開発技法
- 作者: トップスタジオ,まつもとゆきひろ,平林俊一,鵜飼文敏
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2004/06/01
- メディア: 単行本
- 購入: 18人 クリック: 550回
- この商品を含むブログ (214件) を見る
Code Quality ~コードリーディングによる非機能特性の識別技法~
Code Quality ~コードリーディングによる非機能特性の識別技法~
- 作者: Diomidis Spinellis,平林俊一,まつもとゆきひろ,後藤正徳,鵜飼文敏,トップスタジオ
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/05/22
- メディア: 単行本(ソフトカバー)
- クリック: 58回
- この商品を含むブログ (32件) を見る
ビューティフルコード
ビューティフルコード (THEORY/IN/PRACTICE)
- 作者: Brian Kernighan,Jon Bentley,まつもとゆきひろ,Andy Oram,Greg Wilson,久野禎子,久野靖
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/23
- メディア: 大型本
- 購入: 30人 クリック: 617回
- この商品を含むブログ (190件) を見る
プログラミング作法
- 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博
- 出版社/メーカー: アスキー
- 発売日: 2000/11
- メディア: 単行本
- 購入: 58人 クリック: 1,152回
- この商品を含むブログ (209件) を見る
Code Complete第2版〈上〉―完全なプログラミングを目指して
CODE COMPLETE 第2版 上 完全なプログラミングを目指して
- 作者: スティーブマコネル,Steve McConnell,クイープ
- 出版社/メーカー: 日経BP社
- 発売日: 2005/03/26
- メディア: 単行本
- 購入: 44人 クリック: 1,166回
- この商品を含むブログ (288件) を見る
ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集
ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集
- 作者: ケントベック,Kent Beck,梅沢真史,皆川誠,小黒直樹,森島みどり
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/03
- メディア: 単行本
- 購入: 7人 クリック: 94回
- この商品を含むブログ (55件) を見る
実装パターン
- 作者: ケント・ベック,Kent Beck,永田渉,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/12/22
- メディア: 単行本(ソフトカバー)
- 購入: 30人 クリック: 502回
- この商品を含むブログ (90件) を見る
レガシーコード改善ガイド (Object Oriented SELECTION)
レガシーコード改善ガイド (Object Oriented SELECTION)
- 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義
- 出版社/メーカー: 翔泳社
- 発売日: 2009/07/14
- メディア: 大型本
- 購入: 45人 クリック: 673回
- この商品を含むブログ (157件) を見る
データベース・リファクタリング
- 作者: スコット W アンブラー,ピラモド・サダラージ,梅澤真史,越智典子,小黒直樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/03/26
- メディア: 単行本
- 購入: 10人 クリック: 211回
- この商品を含むブログ (53件) を見る
xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series)
xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))
- 作者: Gerard Meszaros
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2007/05/21
- メディア: ハードカバー
- 購入: 5人 クリック: 210回
- この商品を含むブログ (66件) を見る