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