自動化に関するおすすめのスクラム本

アジャイルやスクラムをはじめようと思ったとき、はじめたばかりのとき、実際にはじめてみて壁にぶつかったとき、さまざまなシーンで、インターネットの記事や資料、書籍を探して読んでいるでしょう。

今回は、スクラム開発でも特に「スクラムチームにおける開発者(エンジニア・技術者・プログラマ)」のみなさんにとってぜひお役立ていただきたい本をご紹介します。

特に、スクラム開発に「自動化」を有効的に取り込みたいとお考えのみなさんにぜひ一度は読んでいただきたい本を紹介いたします。

自動化に関するおすすめのスクラム本

”あなたの組織は、チーム全体の目標と、組織の人事評価基準が二軸の両輪として存在していますか? テスト、テスト自動化、ユーザー ドキュメントを犠牲にして、プログラミングやアーキテクチャーの仕事をすることが評価されるような組織であるなら、答えは「いいえ」でしょう。”

マイケル・ジェームス(Michael James)による スクラムマスターズチェックリスト(ScrumMaster Checklist) にもこうあるように、スクラムでは自動化自体は定義されていませんが、毎スプリントでリリース判断可能なものをつくるためには事実上はテスト自動化が必須といえるでしょう。

マイケル・ジェームス(Michael James)

シアトル在住のスクラムエキスパートであるMichael James(マイケル・ジェームズ)は、2006年スクラムの提案者である Ken Schwaber(ケン・シュヴァーバー)により認定スクラムトレーナー(CST®)としての認定を受けました。
彼は、スクラムのための世界で最も人気のあるオンライン学習リソース(http://ScrumTrainingSeries.com)、 スクラムの定義を図式化したリファレンスカード(http://ScrumReferenceCard.com)、 スクラムマスターズチェックリスト(http://ScrumMasterChecklist.org)を作成し、 これらは、簡体字中国語、繁体字中国語、日本語、スペイン語、ドイツ語、ポーランド語、フランス語、ロシア語、ポルトガル語、ベトナム語、およびトルコ語へとボランティアにより翻訳されています。


継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化 Jez Humble(著)、David Farley(著)

いつまで手動でデプロイするつもりですか?
という表紙メッセージが印象的な本書は、継続的なソフトウェアのデリバリーを実現するためのビルド、デプロイ、テスト、リリースの自動化についての本格的な解説書です。
継続的にソフトウェアをリリースすることが必須になっている近年では、必読の1冊と言えるでしょう。

本書は、大きく3部構成となっており、以下の通り基礎から実践までをカバーしています。

第1部では「基礎」として、

  • ソフトウェアデリバリーの問題
  • 構成管理
  • 継続的インテグレーション
  • テスト戦略を実装する

第2部は「デプロイメントパイプライン」は

  • デプロイメントパイプラインの解剖学
  • ビルド
  • デプロイメントスクリプト
  • コミットステージ
  • 自動受入れテスト
  • 非機能要件をテストする
  • アプリケーションをデプロイ
  • リリースする

第3部の「デリバリーエコシステム」では

  • 基盤と環境を管理する
  • データを管理する
  • コンポーネントや依存関係を管理する
  • 高度なバージョン管理
  • 継続的デリバリーを管理する

■ 著者

ジェズ・ハンブル(Jez Humble)

2004年以来、ThoughtWorks社と、北京、バンガロール、ロンドン、サンフランシスコのThoughtWorks Studio社に勤務。 オックスフォード大学の物理学および哲学の学士と、ロンドン大学東洋アフリカ学部民族音楽学の修士を有する。現在はサンフランシスコ在住。


Ant in Action: Covers Ant 1.7 (Manning) Steve Loughran(著)、Erik Hatcher(著)

本書は、Antと、それをテスト駆動型Javaアプリケーション開発に使用する方法を紹介しています。
Antは、2006年末にv1.7(メジャーリビジョン)に移行しています。本書には全体を通して、「複雑さが増している単一のアプリケーションで、アプリケーションがどのように進化し、構築とテストの問題に対処するのか」が書かれています。
本書にある大規模プロジェクトのカバレッジ、Antの高度な機能、議論の詳細さと深みは必読に値するでしょう。

本書の後半は新たな項目を含めた改訂がなされており、以下が記されています。
This is a major revision with the second half of the book completely new, including:

  • 大規模プロジェクトの管理方法(How to Manage Big projects)
  • ライブラリ管理(Library management)
  • Javaのエンタープライズ(Enterprise Java)
  • CI:継続的インテグレーション(Continuous integration)
  • デプロイメント(Deployment)
  • 新しいAntタスクとデータ型を書くこと(Writing new Ant tasks and datatypes)

■ 著者

スティーブ・ラウラン(Steve Loughran)

2000年からAntの積極的なユーザーおよび開発者、2001年からプロジェクトのコミッター、そして2004年からApache Software Foundationのメンバー。
彼は、大規模システムの構築、分散テスト、そしてデプロイメントの問題について定期的に講演をしており、イギリスのブリストルにあるHewlett-Packard Laboratoriesの研究員でもあります。

エリック・ハッチャー(Erik Hatcher)

Erik HatcherはアクティブなAntプロジェクト開発者であり、jGuruのAnt FAQとフォーラムを管理しています。
ErikはWebReview.com、IBM developerWorks、およびJavaProの記事を書いています。彼の他のオープンソースの取り組みは、現在Lucene、XDoclet、そして彼自身のブロガーBlogSceneを含みます。
彼はManningのLucene in Actionの共著者でもあります。 Erikはバージニア州シャーロッツビルに住んでいます。


Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley Signature Series (Fowler)) Paul Matyas、Steve Glover、Andrew Duvall(著)

無数のソフトウェアコンポーネントを組み合わせて「統合地獄」に何日も費やしてきたソフトウェア開発者のために、継続的インテグレーション: ソフトウェア品質の向上とリスクの低減は、統合を必要な悪から開発プロセスの日常的な部分に変換する方法を示しています。
著者が示しているように、重要なのは、継続的インテグレーション(CI)のプラクティスと手法を使用して、定期的に、そして頻繁にインテグレーションすることです。

著者は最初にCIの概念とそのプラクティスをゼロから検証し、次にデータベースの統合、テスト、検査、展開、フィードバックなど、CIシステムによって実行される他の効果的なプロセスの調査に進みます。
さまざまな言語のアプリケーション例を使用した40を超えるCI関連のプラクティスを通じて、CIはより迅速なソフトウェア開発につながり、開発ライフサイクルのあらゆる段階で展開可能なソフトウェアを作成し、欠陥の導入から検出までの時間を短縮コストを下げるCIの実装が成功すると、 開発者はリスクと手作業による繰り返しのプロセスを減らすことができ、チームはプロジェクトの可視性を高めることができます。

本書は以下をカバーしています。

  • ソフトウェア開発プロジェクトで統合を「非イベント」にする方法(How to make integration a “non-event” on your software development projects)
  • ソフトウェアを構築するときに実行する反復プロセスの量を減らす方法(How to reduce the amount of repetitive processes you perform when building your software)
  • チームでCIを効果的に使用するための実践とテクニック(Practices and techniques for using CI effectively with your teams)
  • 最新の欠陥発見、低品質のソフトウェア、可視性の欠如、および展開可能なソフトウェアの欠如のリスクを軽減(Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software)
  • 市場にあるさまざまなCIサーバーおよび関連ツールの評価(Assessments of different CI servers and related tools on the market)

■ 著者

ポール・M・デュヴァル(Paul Duvall)

Paul DuvallはStelligentの最高経営責任者であり、顧客が毎日生産可能なソフトウェアを作成するのを支援しています。
多くの主要なソフトウェア会議で講演された彼は、開発者、プロジェクトマネージャ、アーキテクト、テスタといったソフトウェアプロジェクトにおけるほぼすべての役割に携わってきました。
彼は、継続的インテグレーション:ソフトウェア品質の向上とリスクの低減(Addison-Wesley、2007年)、2008年のJolt Awardを受賞した主要作家です。
PaulはUML 2ツールキット(Wiley、2003年)に寄稿し、IBMのdeveloperWorksのためにAutomation for the peopleというシリーズを執筆し、No Fluff Just Stuffアンソロジー:The 2007 Edition(Pragmatic Programmers、2007)に寄稿しました。
彼はソフトウェア開発とリリースプロセスの自動化に情熱を注いでおり、IntegrateButton.comとTestEarly.comに積極的にブログを書いています。

ステファン・M・マーチャーシュ(Stephen M. Matyas)

Stephen M. Matyas IIIは、5AM Solutionsのサービス部門であるAutomateITの副社長です。
彼は応用ソフトウェア工学の様々な経歴を持ち、彼の専門的な実務経験の多くはエンタープライズJavaおよびカスタムソフトウェア開発とサービスの分野での経験があります。

アンドリュー・グローヴァー(Andrew Glover)

Stelligent Incorporatedの社長であるAndrew Gloverは、北米各地の会議で頻繁に講演され、多くの本やオンライン記事の著者および共著者でもあります。


Pragmatic Project Automation: How To Build, Deploy, And Monitor Java Apps (Pragmatic Starter Kit) Mike Clark(著)

ウィザードを忘れて、あなたは奴隷を必要とします - 苦情なしでそしてお金なしであなたの反復的で、退屈でそして退屈な仕事をする誰かが、それであなたは刺激的なコードを設計して、書くためにより多くの時間があるでしょう。
確かに、それがコンピュータの目的です。
個々のビルドから単体テストの実行、完全な製品リリース、顧客への導入、そしてシステムの監視まで、プロジェクトの繰り返しのタスクをすべて自動化するために、自分のコンピューターを参加させることができます。
多くのチームはこれらのタスクを手でやろうとします。これは通常本当に悪い考えです。人々は繰り返しの作業をマシンほど得意ではないのです。
あなたはそれが重要である時は違うのではなく別のマシンではない、あるいは単に間違って実行するという危険を冒します。
しかし、コンピュータはあなたに迷惑をかけずに、同じ方法で何度でも同じようにあなたに代わってこれらのタスクを実行できます。
あなたはこれらの労働集約的で退屈で潜在的に危険な雑用をちょうどうまくいく自動のバックグラウンドプロセスに変えることができます。
この待望の本には、プロジェクトの自動化に役立つさまざまな人気のオープンソースツールがあります。

本書で学べること:

  • ビルドプロセスを正確、信頼性、高速、そして簡単にする方法(How to make your build processes accurate, reliable, fast, and easy.)
  • ボタンを押すだけで複雑なシステムを構築する方法(How to build complex systems at the touch of a button.)
  • 人手を介さずにソフトウェアを自動的に構築、テスト、リリースする方法(How to build, test, and release software automatically, with no human intervention.)
  • 自動化に利用可能なテクノロジとツール:どちらをいつ使用するか(Technologies and tools available for automation: which to use and when.)
  • マスターからのトリックとコツ(あなたの携帯電話にあなたのビルドがちょうど失敗したとあなたに言う方法を知っていますか?)(Tricks and tips from the masters (do you know how to have your cell phone tell you that your build just failed?))

他のJolt Productivity Awardを受賞したスターターキットの本と同じ一般的なスタイルを使用して、Javaプロジェクトを自動化するための実装が簡単なレシピを見つけることができます。
たくさんの例と具体的で実用的なアドバイスで武装して、あなたは始めるのが簡単で、現代のソフトウェア開発の利益を享受するのがわかるでしょう。信頼性が高く正確な、実用的で自動の、無人のソフトウェア制作を毎回楽しむことができます。

■ 著者

マイク・クラーク(Mike Clark)

Mike Clarkは著者、講演者、コンサルタントであり、そして最も重要なことに、彼はプログラマーです。
彼はBitter EJB(Manning)、JUnit FAQの編集者、およびソフトウェア開発会議で頻繁に講演を行っています。
マイクは1992年以来、航空宇宙、電気通信、金融サービス、インターネットの分野でソフトウェアを専門的に開発してきました。
Mikeは、商用ソフトウェアツールの開発を支援することに加えて、JUnitPerfやJDependを含むいくつかの人気のあるオープンソースツールの開発者です。

Odd-e Japanでは、「自動化」について実践的に学んでいただける認定スクラムデベロッパー(CSD®)研修を開催しています。


認定スクラムデベロッパー(CSD®)研修とは
■ 概要
スクラムの開発チームメンバーとして、正しくかつ効率的に恊働できる人材育成を目的として Scrum Alliance® により作られた、アメリカ発の体系的ソフトウェア開発者の教育・認定プログラム。
スクラムの原理原則を理解して、実際に恊働できる能力が Scrum Alliance® が規定した水準を満たしている事を証明します。
スクラムの開発チームメンバーとして必要かつ効率的なコミュニケーション、技術力が Scrum Alliance® の水準を満たしている事を Scrum Alliance® 認定スクラムトレーナー(CST®)が評価します。

■ 学べること
Scrum Alliance®「Certified Scrum Developer® (CSD®)」の知識と技術を取得し、認定資格取得を目標とします。
実際に理想的なスクラム開発チームの1週間のスプリントを体験する過程で、小さなアプリケーションを構築しながら、適切な知識や技術、チームとして効率的に働きく習慣を得るでしょう。
本コースでは、トレーニング中にアジャイルコーチからコーチングも受けられるので、実践での悩みも相談できます。
近年、高い技術力を求められる市場において、有益な能力を保有している証明になります。
併せて、継続的に技術力の向上、継続的な改善できる能力を持っている証明にもなります。
また本研修は、高い技術力を持つエンジニアへ成長させ、参加者が良いスクラムの実践者となれるようにサポートします。

■ 詳しくはこちら
Odd-e Japan トレーニング申込み
Odd-e JapanのCertified Scrum Developer® (CSD®)研修
Certified Scrum Developer® (CSD®) - Scrum Alliance®

■ 研修プログラム
・スクラム(Scrum)のプラクティス
− スプリント計画
− バックログリファインメント
− スクラムの開発チームメンバーとして働くということなど
・技術的なプラクティス
− アジャイルな設計
− TDD(test-driven development)
− CI(継続的インテグレーション)
− A-TDD(Acceptance Test Driven Development)
− リファクタリング(refactoring)
− レガシーコードの改善方法 など

■ 認定スクラムデベロッパー(CSD®)資格取得
本資格の取得には、Scrum Alliance®が定めた5日間の研修を受講いただきます。
2日間で、 スクラム(Scrum)の原理原則や、正しいスクラムを理解いただき、残りの3日間でソフトウェア開発者として必要な技術的な教育を行います。
参会者のみなさまには、研修を通じて、認定スクラムトレーナー(CST®)から適切に指導を受けながら、「アジャイルな技術者として能力があること」を証明いただきます。
これらの必要な条件を満たすことで、2年間の資格取得を申請する権利を得ることができます。


また、前述のスクラムマスターズチェックリスト(ScrumMaster Checklist) を制作したマイケル・ジェームス(Michael James)による認定スクラムマスター(CSM®)研修も開催しております。
原理がシンプルながらも実践・適用が難しいとされるスクラムで、スクラムの基礎を実践的に体験することができると好評を得ているマイケル・ジェームスのCSM®を日本でご受講いただけるのは、Odd-e Japanの公式研修だけです。

認定スクラムマスター(CSM®)研修とは
■ 概要
Scrum Alliance®認定スクラムトレーナー(CST®)による「 スクラム をプロダクト開発の仮説検証のフレームワークとして活用する」ための研修です。
本トレーニング中に能力を評価された方は、認定スクラムトレーナー(CST®)によってScrum Alliance®に登録されます。残念ながら、本トレーニングは、お金で資格を取得(購入)するための研修ではございません。

■ 学べること
多くの実践的な演習、応用問題、シミュレーションなどの様々な スクラム の疑似体験により、 スクラム の基礎〜応用の理論から実践までを幅広く学び、深く理解することができます。

■ 詳しくはこちら
Odd-e Japan トレーニング申込み
Odd-e JapanのCertified ScrumMaster® (CSM®)研修
Certified ScrumMaster® (CSM®) - Scrum Alliance®

■ 研修内容の構成
1日目〜2日目
スクラム の概念、背景、各役割、経験に基づくプロセス制御、 スクラム と他の新製品開発手法との違いについて学びます。
2日目〜3日目
実践的なケーススタディ。現場で スクラム を行う上で必要となる具体的な知識と理解を深めます。

■ 研修スタイル
本研修ではケーススタディと議論の研修スタイルで行います。
* 研修内容の構成はスクラムマスター中心となりますが、チームメンバー、プロダクトオーナー、プロダクト開発の利害関係者等、様々な立場の方にも十分有益なものとなっています。

マイケル・ジェームス(Michael James)

シアトル在住のスクラムエキスパートであるMichael James(マイケル・ジェームズ)は、2006年スクラムの提案者であるKen Schwaber(ケン・シュヴァーバー)により認定スクラムトレーナー(CST®)としての認定を受けました。 彼のLinkedInプロフィールにある百数十名以上もの推薦文にあるように、多くの国で数々の組織を支援してきました。
彼は、スクラムのための世界で最も人気のあるオンライン学習リソース(http://ScrumTrainingSeries.com)、 スクラムの定義を図式化したリファレンスカード(http://ScrumReferenceCard.com)、 スクラムマスターズチェックリスト(http://ScrumMasterChecklist.org)を作成しました。
これらは、簡体字中国語、繁体字中国語、日本語、スペイン語、ドイツ語、ポーランド語、フランス語、ロシア語、ポルトガル語、ベトナム語、およびトルコ語へとボランティアにより翻訳されています。

彼は、ソフトウェアプロセスの指導者、チームコーチ、そしてスクラムを機能させるためのプロダクトオーナーシップ(ビジネス)、スクラムマスタリー(ファシリテーション)、開発チームのエンジニアリングプラクティス(TDD、リファクタリング、継続的インテグレーション、ペアプログラミング)のスキルを持つ認定スクラムトレーナー(CST®)です。
彼はアメリカの西海岸に於いて、最も長きに渡ってLeSS(大規模スクラム)に関わってきました。1970年代後半までプログラミングの経験を持ち、航空機や宇宙船用の制御システムなど、これまでに構築された中で最も決定的で高品質なシステムのいくつかの "ソフトウェアアーキテクト"です。もしあなたが飛行機に乗ったことがあるならば、おそらくはすでに彼によるソフトウェアを使っていると言えます。彼は「eXtreme Programming」の自動テストの経験をしています。