「クリーンなコード」「ソリッドなコード」を実践!そんな開発者におすすめのスクラム本

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

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

特に、スクラム開発においてコードレビューの価値を高めるためにも「クリーンなコード」「ソリッドなコード」を実践したいとお考えのみなさんにぜひ一度は読んでいただきたい本を紹介いたします。

「クリーンなコード」「ソリッドなコード」を実践!そんな開発者におすすめのスクラム本


Clean Code アジャイルソフトウェア達人の技 Robert C.Martin(著)

コードを書き、読み、洗練する

本書のケーススタディを注意深く読むことで、コードを洗練していく過程で行うべき判断について学ぶことができます。 プログラムが動作したからといって、プログラミングが終わったことにはならないのです。 プロと呼ばれるプログラマになるためには、洗練されたコード(クリーンコード)を書くことが必須といえます。 本書を通して、クリーンコードを書くための原則、パターン、実践について学びましょう。

本書では、以下の内容について詳しく説明されています。
・クリーンコード・意味のある名前・関数・コメント・書式化・オブジェクトとデータ構造・エラー処理・境界・単体テスト・クラス・システム・創発・同時並行性 ・継続的改良(コマンドライン引数のパーサを用いたケーススタディ)・JUnitの内部・SerialDateのリファクタリング・スメルと経験則

また本書は「Clearn Code」というタイトルですが、同シリーズに「Clean Coder」という書籍があります。本書はコード(Code)に、後者は人「Coder」にフォーカスした内容となっています。
Clean Coder プロフェッショナルプログラマへの道
Robert C.Martin(著)

クリーンコードは3つの部分に分かれています。
1つ目は、クリーンなコードを書くための原則、パターン、そして実践について説明します。
2番目の部分は、複雑さが増すいくつかのケーススタディで構成されています。各ケーススタディは、コードを整理するという、問題のあるコードベースを健全で効率的なコードベースに変換する作業です。
3番目の部分は見返りです。
ケーススタディを作成している間に集められたヒューリスティックと「匂い」のリストを含む単一の章です。
結果は、コードを書いたり、読んだり、きれいにしたりするときの考え方を説明する知識ベースです。

読者はこの本の理解から遠ざかるでしょう
Readers will come away from this book understanding

  • 良いコードと悪いコードの違いを見分ける方法(How to tell the difference between good and bad code)
  • 良いコードを書く方法と悪いコードを良いコードに変換する方法(How to write good code and how to transform bad code into good code)
  • 良い名前、良い関数、良いオブジェクト、そして良いクラスを作る方法(How to create good names, good functions, good objects, and good classes)
  • 読みやすくするためのコードの書式設定方法(How to format code for maximum readability)
  • コードロジックを曖昧にすることなく完全なエラー処理を実装する方法(How to implement complete error handling without obscuring code logic)
  • テスト駆動開発をユニットテストして実践する方法(How to unit test and practice test-driven development)

この本は、開発者、ソフトウェアエンジニア、プロジェクトマネージャ、チームリーダー、またはシステムアナリストにとって、より優れたコードを作成することに関心を持つすべての人にとって必須のものです。

■ 著者

ロバート・C・マーチン(Robert C.Martin)

アンクルボブとしてもよく知られているロバート・C・マーチンは、1970年からプログラマである。
彼はアンクルボブコンサルティング、LLCの創設者であり、彼の息子ミカマーティンとともにThe Clean Coders LLCを共同創設しています。
また、ロジェクトを成功に導く熟練のソフトウェア開発者とマネージャの集団である国際的企業Object Mentor, Inc.の創業者であり代表である。Object Mentor社は、大企業向けのプロセス改善コンサルティング・オブジェクト指向ソフトウェア設計のコンサルティングとトレーニング・能力開発サービスを世界に展開している。
マーチンはさまざまな業界誌に何十もの記事を発表しており、国際会議や見本市で定期的に講演しています。彼は、Boochメソッドを使用したオブジェクト指向C ++アプリケーションの設計、プログラム設計のパターン言語3、その他のC ++ Gem、実際のエクストリームプログラミング、アジャイルソフトウェア開発:原則、パターン、およびプラクティス、UML for Javaなどの著書を執筆しており、ソフトウェア開発業界のリーダーとも言えるマーチンは、C ++レポートの編集長を3年間務め、アジャイルアライアンスの最初の会長も務めました。
また、国際的なカンファレンスや展示会では常連の講演者となっています。


【電子合本版】Code Complete 第2版 完全なプログラミングを目指して Steve McConnell(著)

本書は効果的なコンストラクションプラクティスについての知識を集めた、実践的なプログラミング解説書です。
ソフトウェア開発プラクティスは目覚しい進歩を遂げていますが、一般のプログラマにはなかなか浸透しません。
本書は、業界の第一人者らの知識と、一般の商用プラクティスとの橋渡しをします。10年前の第1版とコンセプトは同じですが、第2版は、全体を通じてオブジェクト指向の考え方が反映されたものになっています。
また、「リファクタリング」の章が追加され、サンプルコードはC++、C#、Java、Visual Basicなどにアップデートされています。
本書は、ソフトウェア開発の総合ガイドを求めている経験豊富なプログラマ、経験の浅いプログラマを教育する技術指導者、正式なトレーニングを受けたことのない独学プログラマ、これから社会に出る学生や新人プログラマなどを特に対象としています。
本書で説明されている研究成果や過去の経験は、高品質なソフトウェアを作成し、問題を少なく抑えて作業をより短期間で行うのに役立ちます。
また、大きなプロジェクトを制御し、要求の変更に応じてソフトウェアの保守や修正を適切に行うのにも役立ちます。

■ 著者

スティーブ・マコネル(Steve McConnell)

Steve McConnellは、開発コミュニティで最も優れた作家であり、声の1人として認識されています。
彼はConstrux Softwareのチーフソフトウェアエンジニアであり、Construx EstimateおよびSPC Estimate Professionalの開発者で、Software Development誌のProductivity Awardを受賞しました。
彼は、Code CompleteやRapid Developmentなど、Software Development誌のJolt Awardを受賞した書籍の著者です。


ライティングソリッドコード―バグのないプログラミングを目指して (マイクロソフトプレスシリーズ) Steve Maguire(著)

ソフトウェアの複雑化、大型化にともなって増加するバグを根絶するために、米マイクロソフト社が実践しているプログラミングノウハウを一挙に公開します。
バグに悩むプログラマの方や、製品管理で悩むマネージャーの方にぜひともお勧めしたい必読の書です。

本書は以下の内容で構成されています。

  • 第1章 想像上のコンパイラ
  • 第2章 ASSERTを使え
  • 第3章 サブシステムを活用しよう
  • 第4章 コードをステップ実行せよ
  • 第5章 お菓子の自動販売機のインターフェイス
  • 第6章 危険なビジネス
  • 第7章 不正な取引
  • 第8章 残りは態度

この本では具体的なテクニックよりも、以下のようなプログラマとしての姿勢にフォーカスしており、これら3つを意識したうえでのコードの品質向上を図ります。

  • どうしたらこのバグを自動的に検出することが出来ただろうか?
  • どうしたらこのバグを防ぐことが出来ただろうか?
  • この考え方はバグのないコードを書くために役立つだろうか?それとも妨げになるだろうか?
■ 著者

スティーブ・マグワイア(Steve Maguire)

スティーブマグワイアは1978年以来プロとしてプログラミングを続けており、アメリカだけでなく日本でも活動しています。
当時は比較的知られていなかったMicrosoft社が、Macintosh用のコードを書く(ワープロソフト、表計算ソフト、データベースソフトの)プログラマ兼マネージャを探していたと聞きつけた彼は、Microsoftに連絡し参画。
Macintosh用の新しいスプレッドシートプログラム、Project Odysseyに取り組みました。最終的にマーケティング部門は「Microsoft Odyssey」を「Microsoft Excel」という名称に変更しました。

Microsoft Excelのバージョン1.xの開発に加えて、SteveはMicrosoftのMacintoshクロス開発システムの開発を主導しました。
彼はクロスプラットフォームの共有コード戦略に移行するための中心人物であり、勤務している間、共有コードライブラリの有用性と品質を高めるために貢献したことで有名でした。

この10年間、彼はダイレクトセールス業界向けのワールドクラスのWebサイトとマーケティングツールの開発に主眼を置いてきました。

彼の最初の本、批評家から絶賛されたWriting Solid Code(Microsoft Press、1993)は、プログラマーが堅実なバグのないプログラムを書くために使用できる戦略に焦点を当てています。
Writing Solid Codeは、著名なSoftware Development Jolt Productivity賞と1994年にSociety for Technical Communicationから賞を受賞しました。

彼の2冊目の書籍「Debugging the Development Process」は、プロや高品質のソフトウェアを開発するための実用的なガイドラインをプログラマーやプロジェクトリーダーに提供するために書かれています。 また、著名なSoftware Development Jolt Productivity賞も受賞しています。

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