通向架構師之路
對於不少開發者來說,成為架構師是職業生涯的目標之一,但是如何成為一名架構師卻沒有統一的教科書,Verizon公司架構師Bett Correa在Software期刊中分享了自己的成長經歷,主要的經驗包括均衡發展技術知識、領域知識和溝通能力,通過架構來學習架構等。
Bett認為架構師必須瞭解當前的系統如何滿足客戶的需求、實際地編寫程式碼、與客戶坐下來觀察他們的工作,並聽取他們對軟體的反饋意見。架構師必須搭建團隊之間的橋樑,理解每一個團隊自身的侷限性,並考慮每一方的利益。當業務部門提交了一個新需求,架構師必須據此做好滿足需求的軟體設計,並把這個設計“賣給”各個團隊,讓開發人員和測試人員瞭解新系統的工作原理。
另一個重要的經驗是平衡,技術知識、領域知識和溝通能力之間的均衡發展。Bett最初以技術人員出身,學習Perl和JavaScript等,當時並沒有考慮軟體設計方面的問題,基本的想法就是“儘可能快速地編碼,快速完成任務”,但事實上,通常這只是個美好的願望。在進入一家新公司之後,她開始瞭解該領域的知識和溝通技巧。她參與了Toastmasters活動,提高了當眾演講和主持會議的自信。然後,開始瞭解系統需求,這離軟體設計又近了一步,她把其他人對系統的需求分析記錄下來,持續了幾個月的時間。
她的工作導師要求她瞭解軟體系統和工作原理,並與各個團隊的領導打交道。一段時間之後,她成為了該系統的專家,許多人開始找其諮詢。同時,與業務部門接觸,瞭解市場行情,學習公司的發展史,閱讀公司網站上的白皮書和線上課程。
這些付出都是值得的,因為Bett可以輕鬆地與開發人員和業務客戶討論系統的細節問題。一天,導師讓Bett設計軟體系統的一個小模組,她需要決定許多方面的問題。Bett發現設計不是一個簡單的01遊戲——設計都是權衡和妥協的結果,比如增強安全性可能會降低響應速度。某個決定在一些情況下生效,在其他情況可能無效,Bett不得不找出失效的各種情況,並評估其成本。
在擔任架構師的第一年,Bett服務於25個不同的小專案,從而全面的瞭解軟體系統的各個部分。她能夠將不同背景的人組織到一起拿出解決方案。慢慢地,Bett發現她的設計可以讓各個利益相關者接受。
Bett建議,如果你想培訓架構師,那麼:
- 發展團隊中的好苗子
- 給他們安排一些設計工作
- 鼓勵互相交流
- 讓整個團隊都考慮設計問題
- 鼓勵設計方面的培訓
如果你想成為架構師,那麼:
- 找一位資深的架構師做導師
- 尋找可以設計的專案,甚至可以是自己的專案
- 參加正式培訓並多交流
- Bett特別強調,只有親自參與設計,才會真正瞭解應該如何設計。起初有很多想法,但是開始設計了,才發現很多都是不切實際的。通過課程或者書籍來培訓自己是必要的一步。
說到架構師的溝通和協商能力,Dave Hendrichsen在“軟體架構師的12項修煉”中做了充分的剖析,建議如下。
多說“是”,少說“不是”
架構師經常會被諮詢問到某個專案的可行性,並提供從戰略到戰術的多個替代方案,附帶若干成本選項,以使商務夥伴能根據特定專案的投資進行判斷。架構師與專案評估團隊的角色不是決定要構建什麼,而是決定怎樣構建。我們試圖說出的答案是“對,我們能構建這個專案,這些是相關的資訊”。產生的資訊需要包括諸如所考慮的各種替代方案、專案風險(以及可能的規避策略)、基於的假設條件,以及需要指出的突出問題。我們不是在尋找這樣的答案:“不行,這個專案不可行,但我們能構建另一個專案(通過消除原困難專案中的難題,而代之以我們想構建的那些特性)。”
但是,如果一個專案或任務不可行,我們需要立即巧妙地指出評估結果、解釋原因,並提供替代方案。這通常歸結於法律法規、行規等原因,以致“不”是正確的回答。當然了,還有其他一些例外情況:提出需求的人是想逃避工作,需求違反了公司的政策,或者你手頭有優先順序更高的工作,無法讓你有足夠時間來對需求做出滿意的答覆。這些情況下,你要清楚地告訴人家你說“不”的原因。
瞭解別人和自己的溝通需求
在架構師的世界中,你需要例行地與許多人交流。你可能在上一次會議上與有些人談過話,也可能沒有和這些人談話。挑戰就是快速瞭解人們在說什麼,他們怎麼說這些話,來“讀懂”本次會議。
觀察關鍵的時刻,即做出決定的時刻是一個要點,以此識別人們提出的問題和關心的地方,來加強核心概念,幫助你關注會議的方向以及把會議引向一個成功的結論。為了認識這些關鍵時刻,我們需要吸收所有資訊,包括提供給我們的語言或非語言資訊。
觀察別人的舉止能夠告訴我們如何與每個人最好地溝通。由於每個人都不相同,並且對溝通也有不同的需求,架構師必須讓傳遞資訊的方式適應這些需求,以確保有效溝通。
關鍵點就是我們要基於每個聽眾成員的溝通需求來匹配交流風格。有些人的反應是能夠看出來的,他們的偏好能夠用諸如“我明白你的意思”之類的話辨別。另外有些人需要傾聽,並吸納語言細節,他們的偏好能夠用諸如“我在聽你說”之類的話辨別。還有一些人在交談中比較情緒化,他們的偏好能夠用諸如“我覺得怎樣怎樣”之類的話辨別。
相關文章
- 架構師之路架構
- 軟體構架師之路
- 菜鳥的架構師之路架構
- 架構師之路:一個架構師需要掌握的知識技能架構
- 架構師之路—理解設計模式架構設計模式
- 架構師之路 - 業務領域建模架構
- 架構師之路-redis叢集解析架構Redis
- 網站架構師成長之路網站架構
- 架構系列---架構師之路17年精選80篇架構
- 架構師之路:從Java碼農到年薪八十萬的架構師架構Java
- 架構師之路-https底層原理架構HTTP
- PHP 系統架構師成長之路PHP架構
- 10年資深架構師分享 | 普通程式設計師向架構師進階之路架構程式設計師
- 架構之路架構
- 百萬年薪架構師之路:談應用系統架構設計架構
- 架構師成長之路之限流漫談架構
- 架構師之路,從「儲存選型」起步架構
- 架構師之路17年精選80篇架構
- 架構師之路16年精選50篇架構
- 開闢通向雲端計算之路薦
- 阿里P7架構師的成長之路阿里架構
- 一個架構師的快取修煉之路架構快取
- 系統架構設計師學習之路(31)架構
- 《架構師成長之路》連載之NO.1架構
- 《架構師成長之路》連載之NO.0架構
- 《架構師成長之路》連載之NO.5架構
- 《架構師成長之路》連載之NO.4架構
- 鏈家網前端總架構師楊永林:我的8年架構師成長之路前端架構
- 玩轉架構之路架構
- 架構之路(二):效能架構
- 架構之路(2):效能架構
- java架構師之路:JAVA程式設計師必看的15本書Java架構程式設計師
- Java進階之路——從初級程式設計師到架構師Java程式設計師架構
- 架構師修煉之道(二)——架構?設計?架構師?架構
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 架構師之路19年文章精選120篇架構
- 測試專家講述通往測試架構師之路架構
- DI是人類通向AI的必經之路AI