デザインパターン・パターン指向に関するおすすめのスクラム本

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

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

特に、スクラム開発に「デザインパターン・パターン指向」を有効的に取り込みたいとお考えのみなさんにぜひ一度は読んでいただきたい本を紹介いたします。

デザインパターン・パターン指向に関するおすすめのスクラム本

オブジェクト指向言語で開発を行う際に重要となる「再利用性が高いクラス」や「再利用性が高いライブラリ」を実現するためには、どのような設計をする必要があるでしょうか?
これに解を示すのが、「オブジェクト指向における再利用のためのデザインパターン」(1995年出版)という本で、この本の出版をきっかけに「デザインパターン」が広く知られることとなりました。
この著者である Erich Gamma、Richard Helm、Ralph Johnson、John Vlissidesの4人を「the Gang of Four」と呼ぶことから、本書は「GoF本」と言われています。
本書では、頻出する問題とそれに対応可能な良い設計について23ものパターンを紹介しています。
一般的に「デザインパターン」というと、この GoF本による23個のパターンを意味しますが、広義では「よく出会う問題とそれに対応するための良い解決策」といった意味でも使われることがあります。

23個のパターンとは以下のとおりです。
1. Iteratorパターン、2. Adapter パターン、3. TemplateMethod パターン、4. FactoryMethod パターン、5. Singleton パターン、6. Prototype パターン、 7. Builder パターン、8. AbstractFactory パターン、9. Bridge パターン、10. Strategy パターン、11. Composite パターン、12. Decorator パターン、 13. Visitor パターン、14. Chain of Responsibility パターン、15. Facadeパターン、16. Mediator パターン、17. Observer パターン、18. Memento パターン、 19. State パターン、20. Flyweight パターン、21. Proxyパターン、22. Commandパターン、23. Interpreter パターン


オブジェクト指向における再利用のためのデザインパターン Erich Gamma(著)、Ralph Johnson(著)、Richard Helm(著)、John Vlissides(著)

オブジェクト指向ソフトウェア設計の際に繰り返し現れる重要な部品をデザインパターンとして記録し、カタログ化。改訂版ではこれにCD−ROMを添付、現場でブラウザを通して即利用できるパターンカタログデジタル版を収録。特別付録として、原書にはないJavaのサンプルコードを追加。

【技術書翻訳名著シリーズ】
ソフトウェア開発のバイブル群! 弊社がこれまでに刊行した翻訳技術書の中から、長年読者から支持され続けている名著を厳選したのが、本シリーズです。 移り変わりの激しいコンピュータ業界で、普遍性を保ち続ける定番をお届けします。ソフトウェア開発の上流から下流まで、入門書からエキスパート向けまで、技術者に求められる選りすぐりの情報がここにあります。

本書は柔軟で、再利用可能な、理解しやすい設計のために、オブジェクト指向ソフトウェア設計において遭遇するさまざまな問題に対する解法を、23個のデザインパターンとしてカタログ化。 あなたのプログラムにも、即、適用できます。Software Development Productivity Award受賞。

■ 著者

エーリヒ・ガンマ(Erich Gamma)

スイスのコンピュータ科学者で、影響力のあるソフトウェア工学の教科書、Design Patterns:Reusable Object-Oriented Softwareの要素の共著者です。彼はJUnitソフトウェアテストフレームワークをケント・ベック(Kent Beck)と共同執筆し、EclipseプラットフォームのJava Development Tools(JDT)の設計を指揮しました。
彼はまた、IBM Rational Jazzプロジェクトにも取り組みました。 2011年には、Microsoft Visual Studioチームに参加し、スイスのチューリッヒにある開発ラボを率いて、ブラウザベースの開発用の "Monaco"コンポーネントスイートを開発しました。 (VisualStudio Online、Visual Studio Code、Azure Mobile Services、Azure Webサイト、Office 365開発ツールなど)


Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing (Wiley Software Patterns Series) Frank Buschmann(著)、Kevin Henney(著)、Douglas C. Schmidt(著)

待望のパターン指向ソフトウェアアーキテクチャ(POSA)第4巻は、分散コンピューティングのためのパターン言語にフォーカスしています。

作者はベストプラクティスを通してあなたを案内して、そして分配されたソフトウェアシステムを構築することの重要な領域をあなたに紹介するでしょう。 POSA 4は、POSAシリーズの既存の一連の文学から、多くの独立したパターン、パターンコレクション、およびパターン言語を接続します。 このようなパターンは、単一言語への分散コンピューティングに関連しており、それに役立ちます。

  • 専門家パネルは、分散システムを構築する技術について、一貫した首尾一貫した全体像をあなたに提供します。(The panel of experts provides you with a consistent and coherent holistic view on the craft of building distributed systems.)
  • Martin Fowlerによる序文(Includes a foreword by Martin Fowler)
  • 重要な文献からパターンを統合する包括的な言語を開発するための実践的なアドバイスが必要な実務家のための必読書です。(A must read for practitioners who want practical advice to develop a comprehensive language integrating patterns from key literature.)

■ 著者

フランク・ブッシュマン(Frank Buschmann)

Siemensのソフトウェアエンジニアで、オブジェクト指向技術、ソフトウェアの再利用、そしてパターンに焦点を当てています。彼はANSI C ++標準化委員会のメンバーです。

ケブリン・ヘニー(Kevlin Henney)

Kevlin Henneyは、独立コンサルタント兼トレーナーです。 彼の仕事は、パターンとアーキテクチャー、プログラミング手法と言語、そして開発プロセスと実践に焦点を当てています。
The Register、Better Software、Java Report、CUJ、C ++ Reportなど、さまざまな雑誌やオンライン出版物のコラムニストです。 Kevlinは、パターン指向ソフトウェアアーキテクチャシリーズの2冊の共著者です。
それは、分散コンピューティングのためのパターン言語と、パターンとパターン言語です。彼はまた、すべてのソフトウェアアーキテクトが知っておくべき97のことに貢献しました。

ダグラス・C・シュミット(Douglas C. Schmidt)

Dr. Douglas C. Schmidtは、ACEおよびThe ACE ORB(TAO)の最初の開発者です。 彼はバンダービルト大学の教授で、分散リアルタイムシステムと組み込みシステムのためのパターン、最適化、ミドルウェア、モデルベースのツールを研究しています。 彼は元C ++レポートの編集長であり、C / C ++ユーザージャーナルのコラムニストです。


A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure) Christopher Alexander (著)

10年の沈黙の後、クリストファー・アレキサンダーと環境構造センターの彼の同僚は現在、3冊の本の形で主要な声明を発表しています、 それは彼らの言葉では、「建築への全く新しいアプローチの基礎を築きますそして計画を立てることで、既存のアイデアや慣習を完全に置き換えることができます。
3冊の本は、時代を超越した建築方法、オレゴン実験、そしてこの本、パターン言語です。

これらの本の中核を成すのは、人々が自分のために自分の家、通り、そしてコミュニティをデザインするべきだという考えです。 この考えは急進的かもしれません(それは建築の専門職の抜本的な変革を意味します)が、それは単に世界の素晴らしい場所のほとんどが建築家ではなく人々によって作られたという観察から来ています。

本の中核をなすのも、彼らの環境を設計する際に人々は常にある種の「言語」に頼るということであり、それは私達が話す言語のように、無限の多様なデザインを明確に表現し伝達することを可能にする。 それらに一貫性を与えます。この本はこの種の言語を提供します。それは人がほとんどあらゆる種類の建物、または造られた環境のあらゆる部分のためにデザインをすることを可能にするでしょう。

この言語の単位である「パターン」は、設計上の問題に対する答えです(窓敷居の高さ、建物のストーリーの数、芝生や木々に費やすスペースの広さ)。 このパターン言語では、250を超えるパターンが与えられています。それぞれ、問題の説明、問題の説明と説明、および解決策で構成されています。 作者が序文で述べているように、パターンの多くは典型的なものであり、物事の本質に深く根ざしているので、それらは人間の本質の一部であり、人間の行動であると思われます。

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年間の資格取得を申請する権利を得ることができます。