技術選定の会議が長引く、議論が堂々巡りになる、決めたはずのことが後で蒸し返される。アーキテクチャの意思決定は不確実性が高いぶん、判断の根拠を持たないまま進めるとチーム全体の時間を静かに食いつぶしていく。『ソフトウェアアーキテクトのための意思決定術』は、その判断軸を先に持たせてくれる本だった。
5つの質問と7つの原則から始まる
冒頭で提示される5つの質問と7つの原則が、この本の背骨になっている。パフォーマンスやUXといった個別分野の話に入る前に、まず不確実性やリスクにどう向き合うかという意思決定の型を先に示してくれるので、各章の技術的な内容も「何のための判断か」を見失わずに読み進められる。
マクロアーキテクチャを章立てで分解する構成
コーディネーション、状態の一貫性、セキュリティ、高可用性とスケーラビリティ、マイクロサービス特有の考慮事項と、マクロアーキテクチャを機能ごとに章立てで分解しているのが実務的だった。サーバーアーキテクチャや安定したシステムの構築まで扱っていて、意思決定の話が最後は「開発者が効率的に仕事を進められる体制」まで戻ってくる構成になっている。
読んでよかったポイント
- 技術選定の議論が発散したときに立ち返る「原則」があるだけで、会議の進み方がだいぶ変わった
- パフォーマンスとUXを同じ章で扱っていて、技術指標だけで判断しがちな癖に気づけた
- マイクロサービス特有の意思決定ポイントが独立した章になっていて、モノリスと同じ感覚で判断していた部分を洗い出せた
- セキュリティと高可用性を「後付けの検討事項」ではなくマクロアーキテクチャの一部として扱う視点が身についた
- リーダーが開発者の生産性を守るために何をすべきかという最後の章が、技術書としては珍しい締め方で印象に残った
さらに広げて読むなら
分散システム時代のアーキテクチャの前提を先に押さえておきたいなら、アーキテクチャを言葉で説明できない人へ。分散システム時代の前提を整理できる入門書も合わせて読むと、意思決定の土台になる基礎知識まで補強できる。
まとめ
アーキテクチャの意思決定は、経験だけでなんとなく通用してしまう場面も多いぶん、判断の型を持っているかどうかで後々の手戻りが大きく変わる。次に技術選定の議論をする前に、この本の5つの質問を自分のチームに当てはめてみてほしい。