アジャイルやスクラムをはじめようと思ったとき、はじめたばかりのとき、実際にはじめてみて壁にぶつかったとき、
さまざまなシーンで、インターネットの記事や資料、書籍を探して読んでいるでしょう。
今回は、スクラム開発でも特に「スクラムチームにおける開発者(エンジニア・技術者・プログラマ)」のみなさんにとって
ぜひお役立ていただきたい本をご紹介します。
特に、テスト駆動開発(test-driven development:TDD)、リファクタリング(refactoring)、
オブジェクト指向設計(object-oriented design:ODD)、
受け入れテスト駆動開発(Acceptance Test Driven. Development:A-TDD)、
エクストリームプログラミング(extreme programming:XP)、自動化、デザインパターン・パターン指向など、
技術的事項をジャンルに区切り、また、「プラグラマとしての姿勢」や「チームワーク」に至るまで、
開発者(エンジニア・技術者・プログラマ)のみなさんにぜひ一度は読んでいただきたい本を紹介いたします。
目次
テスト駆動開発 (test-driven development:TDD)とは、プログラム開発手法のひとつです。
製品のプログラムを書く前に、仕様をテストコードで定義し、そのテストが通るように製品のプログラムを書いていくテストファーストな開発手法です。
実装前に書いたテストコードに適合するように実装とリファクタリングを進めていくこの開発手法は、答えを先につくり、
その答えにたどり着くための方法を書いていくという、通常の概念とはまったく逆の発想から来る開発手法です。
テストコードの定義、実装、コードの洗練という短い工程を繰り返すこのスタイルは、多くのアジャイルソフトウェア開発手法、
スクラム(Scrum)開発においても強く推奨されています。
テスト駆動開発 (test-driven development:TDD)の概要についてわかりやすく書かれた本書は、以下のような具体的手法を網羅しているため、
TDDの初心者にとっても馴染みやすい1冊です。
TDDに慣れたエンジニアにとっても、あまり知られていない効果的な技術を会得するために役立つ内容となっています。
ラッセ・コスケラはフィンランドのアジャイルコミュニティの先駆者の一人で、国際的なカンファレンスに頻繁に登壇しています。
リアクター社(Reaktor)
にて、
ソフトウェア開発プログラマー、コンサルタント、コーチ、トレーナー、プラクティショナー(software product development consultant, coach, trainer, and practitioner.)として、
エンタープライズアプリケーションから広範囲のドメイン用に開発されたミドルウェア製品に至るまで、さまざまなソフトウェアプロジェクトに従事しています。TDDの草創期から活動してきたエンジニアの一人で、
認定スクラムトレーナー(CST®)として研修・トレーニングコースを提供、現場でクライアントチームを指導し、パフォーマンスの向上や継続的な学習文化の確立を担っています。
「20年来の経験に裏打ちされた、実践的テスト駆動開発書」と銘打たれた本書は、
といった、プロジェクトで遭遇しがちな疑問に道筋を与え、ソフトウェアを肥大化させずに「育てる方法」が書かれています。
プロフェッショナルを目指す開発者は、ぜひ手にとってみてください。
アジャイルソフトウェア開発を専門とする独立コンサルタント。
ナット・プライスと共に、2006年にアジャイル・アライアンスのゴードンパスク賞を受賞している。
「London Extreme Tuesday Club」の設立メンバーであると同時に、「London XP Day」初回の議長を務めている。
国際会議を頻繁に主催したり、あるいは国際会議で登壇したりしている。
IBMのパッケージ開発から有名な研究所でのプロトタイプ開発に至るまで、実に幅広い組織で仕事をしてきている。
インペリアル・カレッジの博士号取得。
プログラマ、アーキテクト、トレーナー、コンサルタントとして活動している。
学術的な研究プロジェクトにも従事し、時折大学で教鞭もとっている。XPは早くから採用しており、TDDをサポートするオープンソースライブラリにもいくつか貢献している。さらに「London XP Day」カンファレンスの設立メンバーの一人でもある。
また、定期的に国際会議で登壇もしている。
ロンドンに拠点を置いている(本データはこの書籍が刊行された当時に掲載されていたものです)。
近年最も有名なユニットテストのフレームワークであるxUnit。
本書は、そのxUnitを用いた自動テストについて書かれたガイドの決定版と言えるでしょう。
アジャイルコーチであり、自動テストのエキスパートであるジェラルド・メーサーロシュは、本書の中で、
コードを書く → 理解する → それらを維持するための68ものパターンを説明してくれます。
さらに彼は、それらを繰り返しに耐えられる屈強かつ費用対効果の高いものとする方法を紹介しています。
本書は以下のようなトピックから構成されています。
ジェラルド・メーサーロシュは、チーフサイエンティストで、ClearStream Consulting社のシニアコンサルタント、カルガリーをベースにしたアジャイル開発に特化したコンサルタントです。
テスト駆動開発フレームワークの長い経験があり、自動パターン、ソフトウェアのリファクタリング、テスト、テストデザインの先駆者です。
本書では、エクストリーム・プログラミング(extreme programming:XP)の中で、 ペアプログラミングと並んで重要であると言える「テストファースト」「リファクタリング」の2要素に焦点を当て、 テスト駆動開発について具体的に解説をしています。
ケント・ベックはエクストリーム・プログラミング (XP) の考案者でアジャイルマニフェスト (Agile Manifesto) の起草者の一人。
彼はデザインパターン、テスト駆動開発、Smalltalkに関する本を書いた。
ベックはウォード・カニンガムと一緒にCRCカードを普及させた。
SmalltalkのユニットテストのフレームワークであるSUnitを開発した。
さらにエーリヒ・ガンマと共同でJavaのユニットテストのフレームワークJUnitを開発した。
ケント・ベックはオレゴン大学のコンピュータサイエンスの修士号を取得している。※ Wikipediaより
本書は、プログラマーのための真のプロジェクト、真のチャレンジ、真のソリューション、真のコードを実現するためのTDD実践書です。
JavaとJUnitを用いたTDDの1から10まで網羅されており、TDDを推し進めるために本当に役立つ、
リファクタリングやモックオブジェクトを利用するための、意図的にプログラミングするためのツールやテクニックが紹介されています。
C++、C#/.NET、Python、VB6、RubyやSmalltalkのためのTDDのフレームワークも紹介されており、より良いコードを書く楽しさを実感できることでしょう。
デイブ・アステルスは、ChannelFireball.comのテクノロジーディレクターとして、
電気エネルギー取引システムにおける知的財産保護システムの埋込環境制御のソフトウェア開発者として20年以上の経験があり、
10年以上に渡ってオブジェクト技術者として専従しています。
エクストリーム・プログラミング(Extreme Programming:XP)に特化した彼の会社で、
Javaソリューションの普及に努めています。他に「 A Practical Guide to extreme Programming」の著書があります。
(ISBN 0130674826).
本書には、良いテストの書き方が紹介されています。
良いテストとは、ポイントが簡潔であり、表現力が豊かで、有用で、かつメンテナンスが可能であるテストのことを指します。
ロイ・オシェローブのベストセラー「The Art of Unit Testing」にインスパイアされた本書には、
特にJavaの世界のツールやプラクティスにフォーカスしており、
振る舞い駆動開発(behavior-driven development)のような新しいテクニックが例とともに書かれています。
ラッセ・コスケラはフィンランドのアジャイルコミュニティの先駆者の一人で、国際的なカンファレンスに頻繁に登壇しています。
リアクター社(Reaktor)
にて、ソフトウェア開発プログラマー、コンサルタント、コーチ、トレーナー、
プラクティショナー(software product development consultant, coach, trainer, and practitioner.)として、
エンタープライズアプリケーションから広範囲のドメイン用に開発されたミドルウェア製品に至るまで、
さまざまなソフトウェアプロジェクトに従事しています。
TDDの草創期から活動してきたエンジニアの一人で、認定スクラムトレーナー(CST®)
として研修・トレーニングコースを提供、現場でクライアントチームを指導し、パフォーマンスの向上や継続的な学習文化の確立を担っています。
各種トレーニングについては
以下のリンク先よりお申し込みください。