面白駆動人生

やっほー

【読書メモ】Fundamentals of Software Architecture ~はじめに~

ソフトウェアアーキテクチャについて勉強してみたいと思い、『Fundamentals of Software Architecture: An Engineering Approach』(以下、FoSA)という本を買ってみました。

どうやら400ページくらいあるらしい。。。(しかも英語) このままだと、kindleアプリの中でデジタル文鎮になることでしょう。

と言う事で、少しづつまとめをアウトプットしながら読み進めようと決めました。 目次を見ると24章あるので、 各章につき1記事くらいのペースになる感じでしょうか。

初回の本記事では、FoSAを読み進める上での前提を確認していきます。

誰が書いたのか

FoSAの著者は、Mark RichardsとNeal Fordの2人です。 この二人が、どんなバックグラウンドを持ちFoSAを執筆したのか、 FoSA公式ページに掲載されているプロフィールを元に簡単にまとめます。

Mark Richards

www.wmrichards.com

マーク氏は、30年以上アーキテクトとして経験を積み、マイクロサービス・サービス指向アーキテクチャの構築・運用に20年以上携わる。 また、執筆・登壇・トレーナーとして活動し、developertoarchitect.comというウェブサイトの創設者でもある。 developertoarchitect.comでは、開発者からアーキテクトになるためのコンテンツが提供されている。

Neal Ford

www.thoughtworks.com

ニール氏は、ThoughtWorks社でアーキテクト・ディレクター・ミームラングラー(ニール氏による造語)として勤務。 大規模エンタープライズアプリケーションの設計と構築に関してコンサルティングを行う。 アジャイル開発とアーキテクチャに関するエキスパートとして、国際的に知られている。

ThoughtWorks社といえば、Technology Radarを出している企業ですね。 和訳されているニール氏の著書として、『進化的アーキテクチャ』などがあります。

なぜ書いたのか

  • アーキテクト という職に明確な定義・キャリアパスがないこと
  • ソフトウェアアーキテクチャに関する包括的/体系的にまとまった書籍がない、もしくは古いこと

本の紹介文と序文を読むに、 この2点について問題意識があるようです。
1つ目については、第一章で詳しく取り上げられているので、次の記事で触れたいと思います。

2つ目について、序章に "Invalidating Axioms" という副題がついている点に注目しました。 まずは、Axiomの意味をOxford英英辞書で調べます。

a statement or proposition which is regarded as being established, accepted, or self-evidently true.
「自明で、確立された命題/定理」

Invalidating Axiomsは「確立していたものが、無効なものになっている」という意味になりそうです。

この序文の副題から、「かつて良いとされてきたアーキテクチャに対する認識を変えないといけない」という 著者らのメッセージがあると自分は理解しました。

また、タイトルの「Fundamentals」は、 土台とこれからのアーキテクトに向けたガイドを作る という著者らの目的意識が現れているのだと思います。

終わりに (この本を通じて、何が得られるのか)

公式ページによると、本書では以下の要素について記されているようです。

  • アーキテクチャーパターン:アーキテクチャーの技術的基礎
  • コンポーネント:識別、結合、凝集、分割、および粒度
  • ソフトスキル:効果的なチーム管理、会議、交渉、プレゼンテーションなど
  • 現代性:過去数年間で根本的に変化したエンジニアリング手法と運用アプローチ
  • エンジニアリング分野としてのアーキテクチャ:ソフトウェアアーキテクチャに厳格さを加える反復可能な結果、測定基準、具体的な評価

序文の中で、 This book won't make someone a software architecht overngint

と明言されていることから、入門書やHowTo本ではなさそうです。 ボリュームも内容もヘビーな感じがしますが、頑張って読んでいこうと思います。