Book「Software Architecture and Decision-Making」2

Software Architecture and Decision-Making: Leveraging Leadership, Technology, and Product Management to Build Great Products

日本語訳書籍

ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用
Amazonで購入

2 Understanding Systems, Design, and Architecture

ソフトウェアアーキテクチャとは何か?
 ソフトウェア システムを構築するための計画

優れたソフトウェアアーキテクチャの目標とは?
 品質基準を満たし、長期的または決められた期間内に最高の投資収益率(ROI)をもたらすシステムを構築すること

アーキテクチャは理解しやすく、柔軟性があり、不測の事態に対処できるものであってほしい

あらゆる種類のリスクを理解し、不確定要素を中心に計画を立て、計画を伝え、人々を参加させ、その過程でリスクを管理することが、リーダーシップと定義する。

5つの質問と7つの原則を提案し、適切な判断のための道標とする
5つの質問
 市場投入のベストタイミングは?
 チームのスキルレベルは?
 システムのパフォーマンス感度は?
 いつシステムを書き換えられるのか?
 難しい問題とは何か?
→地形(またはビジネスコンテキスト)を理解するため
7つの原則
 ユーザージャーニーからすべてを導く。
 反復的な薄切り戦略を使う。
 各反復において、より多くのユーザーをサポートするために、最小の労力で最大の価値を追加する。
 決断を下し、リスクを吸収する。
 変更が難しいものは深く設計するが、実行はゆっくり。
 難しい問題に早くから並行して取り組むことで、未知数を排除し、証拠から学ぶ。
 ソフトウェアアーキテクチャの凝集性と柔軟性のトレードオフを理解する。
→地形を理解したら、何を、いつ、どのように実装するか
→第5の原則がソフトウェア・システム設計の肝である

memo

いろいろな書記や記事にも書かれている大切なことが質問と原則になっている。
経験から自然にやっていることが多いが、意識することが大切。