著作一覧 |
島田さんが訳された『ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用』が上梓されて、いきなりアマゾンのベストセラー1位(ジャンルでだが)になっていて目出度い。
レビューを手伝って物理本を貰えたので、以下に紹介する。
原著者はスリナス・ペレラ(と読むのか?)という感じなので、インドの人なのだと思う。
だからというわけでもないだろうが、(米国の教科書的なやつで)ドグマとなっていることでもゼロベースで異を唱えられるのだと思うが、そうそうそうだよ! というようなこともたくさん出て来る。
とても良い。
本書の主張は、ソフトウェアアーキテクトは問題について正しく判断して方向を決めろ、ということだ。特定の技術、ベストプラクティスを偏愛するのではなく、その時その時の問題に合わせて自問自答することで、最適な方策を考えろということ。
したがって、適用可能な技術やベストプラクティスに対する知識は大前提となる。また、それらを並べたり、特定のものを推す本は多い。
しかし本書の主眼はベストプラクティスを並べたり、説明することではない。その点が、本書をして類書とは全く異なるアスペクトの提供を可能としてい。
本書の1章で説明しているが、5つの質問と7つの原則を元に、ゼロベースで(知識ではなく直面する問題領域に対して)適切な判断を行うにはどうすべきかの方法論(書名に合わせれば「術」)を説明する。
この、ベストプラクティスなり技術なりを適用するための思考過程を分解して整理した点が本書の極めて優れた点だ。
2章では1章で示した5つの質問と7つの原則を詳説する。これが「術」の内容となる。章末に2つのサンプルを使って簡単な適用を示している。
ここまで読むと、本書の価値がはっきりとする。筆者はよくよく経験を積み、自分の方法をうまく形式化して、それを書籍としてまとめたのだ。このため、カタログ的にベストプラクティスを並べて素っ気ない適用対象を付けたものとは異なり、どう考えて結果を導出するのかがわかりやすく示される。
3章では「パフォーマンス」を取り上げて、主たる問題のモデル化と、具体的なテクニックの適用を示している。この章はおもしろい。
4章になるとさらにおもしろい。具体性が増すからかも知れない。
UXの原則を6個掲げて、3つの課題(に対してどうデザインするか)を取り上げて考え方を示す。
結論がUXエキスパートをチームに入れてアドバイスを聞けになるのだが、納得せざるを得ない。
5~10章はマクロアーキテクチャ(分散システムレベルの大きなシステム全体に適用するアーキテクチャという程度の意味だと思う)として、オーケストレーション、トランザクション、セキュリティなどについての判断方法について詳述していく。
特に7章はうなずきまくり。流行完全無視して、単一トランザクションで処理できる範囲に可能な限り留めろとする。そうでなければシステムは複雑化するし、複雑化したシステムを設計、実装、構築、保守できるか? と、自分が使えるリソースと実現可能性を正しく判断しろと迫って来る。
この著者を信用できると判断するポイントの一つでもある。
8章は読むのが難しい。セキュリティへの対応なのだが、元々難しい問題なので、徐々に難しくするとか失敗の元、最初から難しいと覚悟を決めて難しさに挑め、という結論なのだが、章自体が難しいから難しく書かれている。
が、腰を落ち着けて読み解く価値がある(少なくとも僕は読んでえらく勉強になった)。
9章は高可用性とスケーラビリティ。良い。
「その過程で設計を複雑で脆弱なものにしてしまい、それがしばしば障害やレイテンシーへとつながる」
壁に貼るべき。
7章で切り捨てたようでいてマイクロサービスについても利用すべきと判断することは当然あるので、10章ではマイクロサービスを開発するにあたっての決断を要する点と考慮点を説明。
11章はサーバーアーキテクチャという題でマクロアーキテクチャとは分けている。
この章は読んでいておもしろいのだが、うまく分類できないことを詰め込んだ章なのか?(要は要約しにくい)。
キューイングによるアプリケーション(サービス)連携やアプリケーションの実装形態(CPUセントリック、メモリセントリック、IOセントリックなど)を、どのような課題に対して適用するかの判断方法などが書かれている。
12章はどう考えれば「安定したシステム」を構築できるかについて。
必読。
最後の13章がまとめなのだが、全体を振り返って個々の要素を結合して、どうシステムを進化させていくかまで。
最初の節の題が「実際にやってみる」、各項が「基本に忠実に」「設計プロセスを理解する」「決定を下し、リスクを負う」「卓越性を求める」
かっこいいし、鼓舞されるものがある。
不思議なのは、最近の島田さんが翻訳する上位技術者本シリーズはどれもとても良いのだが、島田さんが選んでいるのか、それとも出版社側が、本国で~だから翻訳したいが、このジャンルなら島田さん、という道筋で来ているのか、良い本が集中している。
ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用(Srinath Perera)
ジェズイットを見習え |