勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

「ソフトウェアアーキテクチャの基礎」を読む Part.1

読むのがホネな技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第61回。同僚と読書期限を約束することによって積読が確実に減るという仕組み。今年も、たんたんとやっていきます。過去記事はこちら

さて、今回から取り扱うのは「ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ」である。読もう読もうと思っている間に2年経ってしまった(発売は2022年03月)。けっこう分厚いので3回(×2週間)に分けて読んでいく。

なぜいま「ソフトウェアアーキテクチャの基礎」なのか

ソフトウェアアーキテクチャに関する様々な事項が「変化」したからである。第1章ではこう書かれている。

なぜ今、ソフトウェアアーキテクチャの基礎を扱う書籍なのか。ソフトウェアアーキテクチャの範囲は、刻々と変化するソフトウェア開発エコシステムの一部だけに留まらない。新しい技術や手法、能力……実際のところ、この10年で、こうしたすべてのものは変化していっている。ソフトウェアアーキテクトは、そうした刻々と変化するエコシステムの中で意思決定をしなければならない。意思決定の判断基準を含めて、すべての物事が変化していっているのなら、アーキテクトである私たちは、以前にソフトウェアアーキテクチャについて書かれた記述が前提としていた中核的な公理さえも見直さなくてはならない。

本書以前のソフトウェアアーキテクチャの教科書と言えば、「ソフトウェアシステムアーキテクチャ構築の原理 第2版」がある(原著:2012年 訳書:2014年)。良い本である。しかし……

本書の冒頭でも同じようなことが端的に触れられている。

長年にわたり、ソフトウェアアーキテクチャの定義は「後から変更するのが難しいもの」という皮肉なものだった。しかし、マイクロサービスアーキテクチャの登場によって、現在は変化こそが第一級の設計上の考慮事項となった。

今回読んだ範囲(1章 イントロダクション+第I部 基礎)の感想

今回は3回に分けて読んでいく。第1回の範囲は「第I部 基礎」の終わりまで。次回は第Ⅱ部、そして最終回は第Ⅲ部の予定である。
第I部までは、アーキテクトの役割、考えるべきことについての説明が行われている。図も多くわかりやすい本という印象である。現代のソフトウェアアーキテクチャに関係する人は読むべき内容だし、知識のアップデートが必要な人にも役立つ内容となっているのではないか。

  • 1章 イントロダクション:とても良い。ソフトウェアアーキテクチャとは何かと、アーキテクトの期待役割が説明される
    • とくにアーキテクトの期待役割に「アーキテクチャを継続的に分析する」と「最新のトレンドを把握し続ける」「さまざまなものに触れ、経験している」が含まれているのが良い。
  • 第I部 基礎

第Ⅱ部からは代表的なアーキテクチャパターンが語られるようだ(まだ読んでいない)。第I部で紹介された考え方を用いて展開されると期待しているので楽しみである。

名言、金言について

本書で面白いと思ったのは、著者たち自身、もしくは著者が見聞きした達人の名言や金言がいろいろな場所で紹介されていることだ。今回読んだ範囲で面白いとおもったものを記録しておく。

  • 「未知の未知があるため、すべてのアーキテクチャはイテレーティブにならざるを得ない。アジャイルはそのことを理解して、より早く未知の未知に対処するようになっている」Mark Richards(著者)
  • アーキテクチャとは、Googleで答えを見つけられないものだ」Mark Richards(著者)
  • アーキテクチャには正解も不正解もない。あるのはトレードオフだけだ」Neal Ford(著者)
  • プログラマーは利点はわかっているが、トレードオフはわかっていない。アーキテクトはその両方を理解する必要がある」Rich Hickey(プログラミング言語Clojureの生みの親)
  • アーキテクチャに間違った答えはない。高くつくものがあるだけだ」Mark Richards(著者)

さて、それでは次は、第Ⅱ部 アーキテクチャスタイル にとりかかろう。つづく