重點摘要#

  • 架構師必須持續培養和運用情境判斷力(contextual sense)
  • 沒有萬能的解決方案,問題的多樣性要求不同的應對方式
  • 軟體模式最重要的知識是何時該用、何時不該用
  • 軟體產業仍然年輕,許多人被要求解決超出其累積經驗的問題

詳細內容#

架構師必須持續培養和運用情境判斷力 — 因為不存在適用於所有問題的萬能解決方案。

什麼是情境判斷力?#

Eberhardt Rechtin 在 1991 年的著作《Systems Architecting: Creating & Building Complex Systems》中首次提出這個概念:

「啟發式方法」的核心思想來自詢問熟練的架構師面對高度複雜問題時會怎麼做。他們最可能的回答是「運用常識」。比起「常識」,更精確的表達是情境判斷力 — 對特定情境中什麼是合理的認知。架構師通常需要約 10 年的教育、經驗和實例累積,才能建立起足夠的情境判斷力來解決系統級問題。

軟體產業的現實挑戰#

軟體產業目前的一個大問題是:人們經常被要求負責解決超出其累積情境判斷力的問題。這可能是因為軟體產業才剛滿兩個世代,而且正在爆炸性成長。

常見的失敗案例包括:

  • 在適當的時候未能應用領域驅動設計(Domain-Driven Design)
  • 偏離務實的觀點,為當下的需求過度設計軟體解決方案
  • 在效能優化危機中提出不相關或不合理的建議

關於軟體模式,最重要的知識是何時該套用、何時不該套用。無論是系統架構設計還是問題分析,架構師都必須培養並運用情境判斷力。

— By Randy Stafford