ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション
- オライリージャパン (2008年12月27日発売)
ThoughtWorksは、日本で言えば、豆蔵のような会社だそうです(推薦の言葉で、羽生田栄一氏が書いているので間違いありません)。
つまり、この本は、羽生田さんや、萩本さんや、大西さんや、湯本さんが書いたエッセイという感じと思っていただければ遠からずというところです。
さて、内容ですが、
1 章 ビジネスソフトウェアの「ラストマイル」を解決する
2 章 とある秘密基地とRuby による20 のDSL
3 章 言語の緑豊かな景観
4 章 多言語プログラミング
5 章 オブジェクト指向エクササイズ
6 章 ところでイテレーションマネージャとは何だろうか
7 章 プロジェクトバイタルサイン
8 章 コンシューマ駆動契約――サービス進化パターン
9 章 ドメインアノテーション
10 章 Ant ビルドファイルのリファクタリング
11 章 1 クリックデプロイ
12 章 アジャイルかウォーターフォールか――エンタープライズWeb アプリケーションのテスト
13 章 実践的な性能テスト
と多岐に渡っています(12章と13章はテストの話題です)。
私は、
3 章 言語の緑豊かな景観
5 章 オブジェクト指向エクササイズ
12 章 アジャイルかウォーターフォールか
がおもしろかったです(さっぱり分からなかったのは、2章のDSL、8章のコンシューマ駆動契約、10章のAntです)。
★
3章の「言語の緑豊かな景観」では、
X = y/0;
Y = 6;
End(Y);
というおかしなプログラムがあったときに、遅延評価をするHaskellのような言語では、エラーにならず6を返す(何故なら、結果を得るためにXの値を決定する必要がないためX=y/0;の文は無視されるから)という話がおもしろかったです。
遅延評価をする言語のテストって難しいかもと思いました。
★
5章の「オブジェクト指向エクササイズ」では、「ソフトウエア設計を改善する9つのステップ」として、
1. 1つのメソッドにつきインデントは1段階までにすること
2. else句を使用しないこと
3. すべてのプリミティブ型と文字列型をラップすること
4. 1行につきドットは1つまでにすること
5. 名前を省略しないこと
6. 全てのエンティティを小さくすること
7. 1つのクラスにつきインスタンス変数は2つまでにすること
8. ファーストクラスコレクションを使用すること
9. Getter、Setter、プロパティを使用しないこと
を挙げているのがおもしろかったです。
筆者の提案は、この9つのルール(縛り)を設けて、20時間かけて、1,000行のコードを書くという訓練をしなさいということで、それによって、カプセル化、ポリモフィズム、命名戦略の意義が体感できるのでいいよ!という話です。
これはいい!と思いました。
★
テスト関係で、「はっ」と思ったのは、
探索的テストの終了基準
テストアナリストから、アプリケーションの品質がよいという信頼を得る
探索的テストは、アジャイルなプロジェクトにとっては重大なテストフェーズです。
不具合管理はアジャイルなプロジェクトでも適用できます。開発中のストーリーで不具合が発見されたときは、インフォーマルな(肩越しの)コミュニケーションによって開発者たちにこれらの不具合が伝えられて、その不具合は即座に修正されます。現在のイテレーションのストーリーに関係しない不具合や、開発中のストーリー内での重要でない不具合が発見されれば、その不具合は不具合追跡ツールに登録されます。不具合はその後、ストーリーと同様に扱われます。つまり、ストーリーカードが作成され、顧客によって優先度をつけられ、ストーリーのバックログに追加されます。
不具合管理を課題管理という位置づけで考えると、重要なバグは即座に直して管理せず、それ以外のバグを顧客と話し合いながら要求を管理するように取り扱うという方法もあるのだなぁと考えさせられました。
ということで、個性的なエッセイが多く、おもしろい本でした。おすすめです。
- 感想投稿日 : 2012年5月1日
- 読了日 : 2009年1月8日
- 本棚登録日 : 2011年2月28日
みんなの感想をみる