読むのがホネな技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第74回。同僚と読書期限を約束することによって積読が確実に減るという仕組み。過去記事はこちら。
さて、今回読む本は「ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用」だ。 なんか最近アーキテクト本がたくさん出ているけど、本書はどうかな……
1.2章(本書の目的)で次のような記述を見た瞬間に、この本はイケているとは確信できた。
本書では、ソフトウェアアーキテクチャ上の意思決定と、リーダーシップとの間にあるギャップについて論じる。そして、技術的なリーダーシップと、システムを構築する際にそれを最大限に活用する方法について解説する。先にも書いたが、経験上、アーキテクチャにおける失敗の多くは、知識と判断力のギャップに起因している
- ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用、1.2 本書の目的、より
というわけで通読したので感想を紹介したい。
なお本書の詳細については、訳者の島田さんの以下の記事やスライドがわかりやすいので、中身が気になる方はあわせてどうぞ。
- 『ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用』 - snoozer05's blog
- ソフトウェアアーキテクトのための意思決定術: Software Architecture and Decision-Making - Speaker Deck(こちらは未読だと意味がわからないかもしれない。むしろ読書の振り返りに有益な内容という印象)
全般的な感想
初心者向けでないことは確かである。ソフトウェアアーキテクチャの基礎について学ぶ本ではない。基礎に心配があれば以下のような書籍を手に取ったほうがいいだろう。
- アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築(本サイトでの紹介記事はこちら)
- ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ(本サイトでの紹介記事はPart1、Part2、Part3がある)
本書は中級者以上のソフトウェアアーキテクト向けの、極めて実践的な本という印象だ。そして現代の外部環境に最適化されており、無視していいことをバッサリと捨てていて重要な意思決定に注力する方針が好感度高い。
例えばパフォーマンスについては「多くのシステムはパフォーマンスに鈍感」で、一般的な構成なら「毎秒数百リクエストを処理するサービスを簡単に実装できる」のだから、これを使い切るまではビジネスに集中すればいいし、問題が出てくるころには「システムの第2、第3バージョンを書く(資金的な)余裕が生まれているはずだ」とある。そうそう、こういう話が読みたいんだよ。
というふうに極めて実践的で合理的な本だというのが、全般的な感想である。
マクロアーキテクチャ
マイクロではなくマクロ。本書の中盤以降は「マクロアーキテクチャ」という表現でいくつかのアーキテクチャについての説明が行われる。マクロアーキテクチャという表現は新鮮だったが、雑に検索すると過去から時々言われる表現らしい。おおむね「(抽象度が高めの)アーキテクチャパターン」といったところか。
- Happy Squeaking!! -オブジェクト指向再入門- [第五回:デザインパターン事始め] → 97年頃のOO設計の文章の中にあるマクロアーキテクチャ
マイクロサービスとまぎらわしく、現代の検索エンジンだと「もしかして」機能でマイクロに読み替えられてしまうのでファインダビリティに課題がある。アーキテクチャパターンと読み替えた方がよさそう。
5つの問いと7つの原則
本書が素晴らしいのは、アーキテクチャ上の様々な課題を12個のキーワード、すなわち5つの問いと7つの原則に落とし込んだところにもあると思う。どのような問いと原則であるかは本書を読むか訳者の島田さんのスライドを見ると良いと思うが、これは覚えやすいしわかりやすいと思う。
というか、デキるアーキテクトに相談しに行くと言われそうな事ばかりだ。
「で、そのシステムはいつリリースしたいの?」「どんなチームで開発するの? スキルレベルは?」(あー、おなかいたい)
というわけで本書は良い本なので、とてもおすすめです。
さて、これで本書は読了。
次はいま話題の「Tidy First? ―個人で実践する経験主義的ソフトウェア設計」を読む予定!
