勘と経験と読経

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

「ソフトウェアアーキテクチャの基礎」を読む Part.3(完結)

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

さて、今回は「ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ」の完結編(第3部)だ。けっこう分厚いので3回(×2週間)に分けて読んだ。今回は「第III部 テクニックとソフトスキル」を読んでいく。

過去2回の記事はこちら

「ソフトウェアアーキテクチャの基礎」全体の感想

今回で最後まで読めたので、本書全体の感想を先に述べておこう。

  • 個人的には、アーキテクチャに関する鉄板本は「ソフトウェアシステムアーキテクチャ構築の原理 第2版」だったが、今後は本書をスタンダードにしたいと思う。アーキテクトを名乗るなら読んでおいてほしい本だ
    • もちろん構築の原理も良い本だ(特にビューポイント/観点集として)。しかし同書はどちらかというとアーキテクチャを静的なものとして扱っているきらいがある。現在のアーキテクチャの多くは動的なものだ
  • レガシーなものからモダンなアーキテクチャまでの概論を包含しており、包括的で見通しが良い。ここから始めると良さそう(もちろん深掘りするためには別の検討は必要になる)
  • 目指すべきアーキテクト像もモダンである。ファシリテーターであり、コラボレーターであり、プレゼンターであるというのは重要な指摘ポイントだと思った(この点は本記事の後半でも触れる)

第III部 テクニックとソフトスキル

今回読んだ第III部であるが、読む前には一抹の不安があった。なんというか、類書を沢山読んでいるので「また似たような話かー」となる懸念があったのだ。しかし、それは杞憂だった。

ひとことで言えば、アーキテクト像もちゃんとアップデートされている。全体の感想で書いた通りだが、ファシリテーターであり、コラボレーターであり、プレゼンターであることについて書かれているのが興味深い。

ファシリテーター

本書ではアーキテクチャそのものが動的なものであり、アーキテクトだけが構築していくわけではないというコンセプトに従っていると理解している。その上で、例えばアーキテクチャのリスクを分析する際には「リスクストーミング」という手法でメンバーと共にリスクを特定し改善する方法が示されている。

アーキテクトが単独でシステムの全体的なリスクを決定することはできない。一人ではリスク領域を見落とす可能性があるし、システムのすべての部分について完全な知識を持っているアーキテクトはほとんどいないからだ。そこで役に立つのが、リスクストーミングだ。
ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ、20章 アーキテクチャ上のリスクを分析する より

コラボレーター

同様に、チームでのコラボレーションに関するテクニックについてもいくつかの章が割かれている。「22章 効果的なチームにする」では、アンチパターンとしてのアーキテクトタイプとして「コントロールフリーク(すべての決定をアーキテクトが行う)」「アームチェアアーキテクト(コーディングをせず抽象的な決定ばかりする)」を示したうえで、チームに適切な制約と境界をつくり出してコラボレーションすることの重要性が語られていて興味深かった。

またチームとの境界を定めるためには、トレードオフスライダーに似た「コントロール量の尺度(メーター)」を用いて、どこまでコントロールするのかを調整するという話はかなり面白い。

プレゼンター

著者はアーキテクトに政治的な状況への対応力が必要であると述べる。

本書の冒頭で、アーキテクトに期待されることを挙げたが、その最後に、ソフトウェアアーキテクトは企業の政治的な状況を理解し、その政治的な状況を切り抜けられなければならないという期待を挙げた。このような期待が挙げられる理由は、ソフトウェアアーキテクトが下すほぼすべての決定には異議が唱えられるからだ
ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ、23章 交渉とリーダーシップのスキル より(下線は本記事の筆者)

下線の箇所は、なるほどと膝を打ったところである。

その上で、利害関係者との調整のために

現代のアーキテクトに求められるもう1つのソフトスキルは、PowerPointKeynoteのようなツールを使って効果的なプレゼンテーションを行う能力だ
ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ、21章 アーキテクチャの図解やプレゼンテーション より

という主張があるのも納得である。

なお著者の一人であるNeal Fordさんは「Presentation Patterns: Techniques for Crafting Better Presentations (English Edition)」という本も執筆しているからか、プレゼンテーションの方法については楽しいアンチパターンがいくつも紹介されていて興味深かった。いつかこの本も読んでみたい。