読了:ソフトウェアアーキテクトが知るべき97のこと

ソフトウェアアーキテクトが知るべき97のこと

ソフトウェアアーキテクトが知るべき97のこと

(コッチでコメント)

1.システムの要件よりも履歴書の見栄えを優先させてはならない
2.本質的な複雑さは単純に、付随的な複雑さは取り除け
3.最大の問題は、たぶん技術的なことではない
4.まずコミュニケーション、そのための明快さととリーダーシップ
5.パフォーマンスの決め手はアーキテクチャー
6.要求仕様の本当の意味を探れ
7.立ち上がろう!
8.すべてのものは、かならずエラーを起こす
9.それは交渉だということに気付け
10.定量化を求めよ
11.500行の仕様書より1行のコード
12.フリーサイズのソリューションを求めるな
13.パフォーマンスの検討に早過ぎるということはない
14.アーキテクチャーとはバランスを取ること
15.犯罪的なコミットエンドランを防ぐには
16.選択肢を1つに絞らないための現実的な方法
17.ビジネスサイドに主導権を渡せ
18.一般性より単純性、再利用よりもまず最初に使えること
19.アーキテクトは手を汚さなければならない
20.継続的にインテグレーションを実行せよ
21.日程による失敗を避けるために
22.アーキテクチャーではトレードオフは避けられない
23.要塞としてのデータベース
24.不確定性が潜むという感覚を磨け
25.鏡に映る問題は見かけよりも大きい
26.再利用は、アーキテクチャーだけではなく人と教育の問題と心得よ
27.アーキテクチャーにI(自我)なし
28.地上300mからの目
29.選ぶ前に試せ
30.ビジネスドメインを理解せよ
31.プログラミングは製造ではなく設計だ
32.デベロッパーに自己裁量を与えよ
33.時間がすべてを変える
34.「ソフトウェア・アーキテクト」のAは小文字だけ。それで満足せよ
35.大きなスコープは敵
36.役者ではなく執事になれ
37.ソフトウェア・アーキテクチャーが倫理的な意味を持つことを考えよ
38.摩天楼はスケーラブルではない
39.未来はヘテロジニアスとともにある
40.パフォーマンスがまず大事
41.ダイアグラムの空白に注意せよ
42.デザインパターンに習熟せよ
43.状況が何よりも大切
44.ドワーフ、エルフ、ウィザード、キングの4種類の人々
45.建物のアーキテクト(建築家)から学ぼう
46.繰り返しと戦え
47.現実の世界にようこそ
48.支配せず、観察せよ
49.アーキテクトは2つの顔を持つ
50.アーキテクトは境界とインターフェイスに注意を注げ
51.デベロッパーに力を
52.理由を書き留めよ
53.暗黙の仮定、特に自分自身のものを疑え
54.あなたの知識と経験を共有しよう
55.パターンの病理学
56.たとえ話の使いすぎに注意
57.アプリケーションの保守に力を入れよ
58.58つから2つだけを選ぶ覚悟を決めよ
59.趣味や個人的な意見ではなく、原理原則に従え
60.動くスケルトンから始めよ
61.データがすべて
62.単純なものは単純に
63.アーキテクトは何よりもまずデベロッパーであれ
64.ROI変数を意識せよ
65.目の前にあるのはレガシーシステムだという前提で設計せよ
66.解決策が1つしかない場合には、セカンドオピニオンを求めよ
67.変化の影響を把握せよ
68.ハードウェアの理解も必要
69.今の近道、後で大損
70.「完璧」は、「十分よい」の敵
71.「よいアイデア」を避けよ
72.優れたコンテンツは優れたシステムを作る
73.怒れるアーキテクトとしてビジネスと対立するな
74.主要な指標の耐久性を試してどこで壊れるかを確かめよ
75.設計するならコーディングできなければならない
76.他の名前でバラを呼べば、キャベツにしかならない
77.しっかりとした問題には高品質のソリューションが与えられる
78.勤勉さが必要
79.自分の判断に責任を持て
80.クレバーになるな
81.武器は慎重に選べ、安易に手放すな
82.本当の顧客は目の前の顧客ではない
83.設計した通りにはならない
84.フレームワークは相性で選べ
85.強力なビジネスケースを作れ
86.コードだけではなくデータをコントロールせよ
87.技術上の借金は返済せよ
88.問題を解こうとするな
89.システムは用具的に作れ
90.問題解決に情熱を注げるデベロッパーを探して手放すな
91.ソフトウェアは実際には存在しない
92.新しい言語を学べ
93.未来永劫安泰なソリューションはない
94.ユーザーの拒否感情の問題
95.コンソメの重要性
96.エンドユーザーの立場からはインターフェイスこそがシステム
97.優れたシステムは構築されるのではなく、成長する
+1.アーキテクチャは縦と横の基本構造を持つ
+2.ビジネス・アーキテクトを目指せ
+3.問題にフォーカスせよ
+4.問題にとらわれるな
+5.煩雑なことを非属人化し、創造性を高める
+6.手順的な技術と陳腐化しない本質的な技術
+7.開発スタイルをデザインする
+8.システムではなく、コミュニケーションをデザインせよ
+9.移り気な利用者を捉える
+10.受動的アーキテクトと能動的アーキテクト
+11.説明責任を果たす