概述#
成為架構師需要大量的時間和努力,但成為架構師之後,管理職涯發展同樣具有挑戰性。技術世界變化極快——Neal 的前同事曾是世界級的 Clipper 專家,但當 Clipper 消亡時,那些龐大的知識也變得毫無用處。
每位架構師都應該:
- 持續關注技術和業務相關的資源
- 向同事和專家詢問他們用什麼管道保持與時俱進
- 每天撥出時間利用這些資源維持技術廣度(technical breadth)
20 分鐘法則(The 20-Minute Rule)#
如第 2 章所述,技術廣度對架構師比技術深度更重要。但維持廣度需要投入時間和精力。作者提出 20-minute rule:
- 每天至少花 20 分鐘學習新事物或深入了解某個技術主題
- 利用 InfoQ、DZone Refcardz、ThoughtWorks Technology Radar 等資源
- 花 20 分鐘去搜尋那些你不熟悉的術語和概念——將「things you don’t know you don’t know」轉變為「things you know you don’t know」
何時執行?#
- 強烈建議在早晨第一件事就做 — 拿了咖啡後、查看 email 之前
- 午餐時間或下班後往往行不通——午餐越來越短,晚上有家庭和個人事務
- 一旦開始查看 email,就會被各種事情分心,20 分鐘就永遠不會發生
- 提早到辦公室,比其他人先開始這 20 分鐘的學習
20 分鐘看似不多,但持之以恆的效果驚人。每天 20 分鐘,一年就是 120 多小時的學習時間,足以讓你對技術趨勢保持敏銳。

Figure 24.1: The 20-minute rule
建立個人技術雷達(Developing a Personal Radar)#
技術泡泡的危險#
當一個開發者深度投入某項技術時,會活在一個技術泡泡(technology bubble)中——一個 memetic bubble(模因泡泡),同時也是一個 echo chamber(迴聲室)。由供應商創造的泡泡特別危險,因為你在泡泡內部永遠聽不到誠實的評價。泡泡最大的危險是當它開始崩塌時,身在其中的人往往到太遲才察覺。
ThoughtWorks Technology Radar#
ThoughtWorks Technology Advisory Board(TAB)定期發布 Technology Radar,這是一個評估技術風險和機會的工具。
四個象限(Quadrants):
- Tools — 軟體開發工具,從 IDE 到企業級整合工具
- Languages and Frameworks — 程式語言、函式庫和框架
- Techniques — 軟體開發實踐,包括流程、工程實踐和建議
- Platforms — 技術平台,包括資料庫、雲端供應商和作業系統
四個環(Rings),由外到內:
- Hold — 暫緩使用。最初的含義是「太新、無法評估」,但已演變為「不建議在新開發中使用」的意思。現有專案可以繼續用,但新專案應三思
- Assess — 值得探索。投入一些精力(如 spike、研究專案、conference session)了解它是否對組織有影響
- Trial — 值得嘗試。在低風險專案中試用,讓架構師和開發者真正理解這項技術
- Adopt — 強烈推薦採用。ThoughtWorks 認為業界應該擁抱這些技術

Figure 24.2: A sample ThoughtWorks Technology Radar
建立個人版 Radar#
將 ThoughtWorks Radar 的概念應用到個人層面時,建議調整四個環的含義:
- Hold — 不僅是要避免的技術,也包括你試圖戒掉的習慣(例如:持續瀏覽低價值的論壇八卦)
- Assess — 你聽說過但還沒時間深入了解的技術,作為未來研究的暫存區
- Trial — 正在積極研究和開發的技術,例如在程式碼庫中進行 spike experiment
- Adopt — 你最感興趣、最想用來解決問題的技術和最佳實踐
架構師應該像管理金融投資組合一樣管理自己的技術組合——多元化!選擇一些市場需求大的主流技術,同時也嘗試一些有潛力的新技術。不要把所有雞蛋放在同一個籃子裡。
Open Source Visualization Bits#
ThoughtWorks 在 2016 年釋出了一個開源工具,讓技術人員可以使用 Google Spreadsheet 作為輸入,自動產生 radar 的 HTML 5 視覺化。建立 radar 最重要的不是產出的圖,而是過程中引發的思考和對話。
使用社群媒體(Using Social Media)#
Andrew McAfee 在 Enterprise 2.0 一書中提出了關於社交網路的有趣觀察。人際關係網絡可分為三層:
- Strong Links(強連結) — 家人、同事、密友。你知道他們昨天午餐吃了什麼
- Weak Links(弱連結) — 偶爾見面的人、遠親、點頭之交。社群媒體出現前很難維持聯繫
- Potential Links(潛在連結) — 你還沒認識的人
McAfee 最有趣的發現是:一個人的下一份工作機會更可能來自弱連結而非強連結。因為強連結群體內的資訊高度重疊,而弱連結能提供超出你日常經驗的建議和機會。

Figure 24.3: Social circles of a person's relationships
架構師應該利用社群媒體來:
- 在社群媒體上找到你敬佩的技術專家並追蹤他們
- 建立一個關於新技術和趨勢的資訊網絡
- 透過弱連結擴展技術視野
參加技術研討會與持續練習(Conferences and Practice)#
參加研討會#
技術研討會是了解新趨勢、建立人脈的好機會。即使無法親自出席,許多研討會也有線上影片可供觀看。
練習與資源#
How do we get great designers? Great designers design, of course.
— Fred Brooks
So how are we supposed to get great architects, if they only get the chance to architect fewer than a half-dozen times in their career?
— Ted Neward
練習是精進任何技能的不二法門,架構也不例外。作者鼓勵架構師:
- 使用本書配套網站上的 architecture katas 來練習架構設計
- 同時磨練個別技術的廣度和架構設計的能力
- 關於 kata 的常見問題「有沒有標準答案?」——答案是沒有
There are not right or wrong answers in architecture — only trade-offs.
架構中沒有對錯,只有取捨。重要的不是畫出了什麼拓樸圖(how),而是為什麼做出這些選擇(why)以及考慮了哪些取捨。
作者的最後忠告:持續學習、持續練習,然後——go do some architecture!