如何做一個技術全面的架構師

banq發表於2016-11-29
本文從六個方面討論一個良好架構師所必須具備的專業水準。

作為領導

好的軟體架構師必須知道,他們作為領導者的作用不一定是告訴開發人員做什麼。 相反,好的架構師的行為本身就像一個指導,管理一個開發團隊向同一個技術願景前進,利用領導技能,如講故事,影響,導引衝突和建立個人的信任等方式,把他們的架構願景變成現實。

一個好的領導者,同時也是一個好的架構師,將仔細聽取每個參與者的意見,透過與團隊反饋互動微調他們的願景。 很好地引導到下一個點。

作為開發人員

在理想的目標架構與軟體系統的當前狀態之間平衡才能做出良好架構選擇。比如,如果關聯式資料庫更適合問題域,即使很無聊,如果再將文件資料庫新增到系統中也沒有意義。架構師如果不首先考慮是否適合業務問題領域,會被各種技術誘惑而進行架構選擇。

架構師減輕這一點的最好方法是花費時間與開發人員泡在程式碼中。瞭解系統如何建立,以及系統的約束,這些將為架構師提供關於當今環境的正確選擇的更多資訊。

具有系統焦點

經驗豐富的開發人員知道,程式碼只是工作軟體的一個方面。為了使程式碼執行,經驗豐富的開發人員需要理解其他重要的質量屬性,程式碼才能在其生產環境中執行良好。他們需要考慮部署過程,自動測試,效能,安全性和可支援性等方面質量屬性。 開發人員才能可以根據這些質量屬性進行編碼實施,架構師不僅專注於理解程式碼,而且需要了解並滿足不同利益相關者(如支援,安全和操作人員)的需求。

好的架構師需要專注於尋找能夠滿足這些不同利益相關者需求的解決方案,而不是根據某一個參與者的偏好或風格選擇進行最佳化的工具或方法。

像一個企業家思考

所有的技術選擇都有成本和效益,一個好的架構師將從兩個角度考慮新的技術選擇。成功的企業家會願意承擔風險,但是會尋求快速學習和快速失敗的方法。 架構師可以以類似的方式處理技術選擇,尋求現實世界中有關短期和長期成本的資訊,意識到他們的可能好處。

一個很好的例子是,當架構師避免承諾立即使用從新文章讀過的或在會議上聽說過的新工具。相反,他們應當設法瞭解該工具的相關性,並在他們的環境中執行的架構樣本以收集更多的資訊。他們不會基於多好的銷售額而選擇一個工具,,而是依據它提供了什麼價值,是否提供給他們的系統所需要的。 他們還會尋找工具的隱性成本,例如支援的工具是否足夠好(例如文件級別,社群採用情況),工具帶來多少鎖定或長期引入的額外風險。

用戰術思維平衡策略

許多團隊與各個開發人員都是傾向於選擇他們最舒適或最有經驗的工具和技術構建他們的系統。

好的架構師需要注意什麼是更新的技術,哪些工具或方法可能是有用的,但不一定立即採用他們。技術採用需要一個考慮長期前景的方法。 架構師將在團隊和組織層面尋求敏捷性(允許團隊快速移動)和調整(保持足夠的一致性)之間的良好平衡。

建立自己的技術雷達是在探索有用的工具。

良好溝通

架構師需要知道有效的溝通是建立在信任基礎上,需要在團隊外影響隊員,這些都是架構師的關鍵技能。 他們知道不同群體的人使用不同的詞彙,使用技術術語與生意或管理人士交流會變得困難。架構師不會使用模式、工具和程式設計概念與他們交流,而是使用受眾熟悉的詞語與之交流。 使用諸如風險回報,成本和收益等詞彙向商業人士傳達技術選擇,將比與開發團隊一起使用的技術詞彙更適合。

架構師也意識到團隊內部溝通和外部溝通一樣重要,可以利用圖表和小組討論,建立和完善技術願景,並使用編寫寫日誌的方式,如維基,能夠為將來提供為歷史發展軌跡。

結論

做一個全面的架構師不容易。有這麼多的元素需要我們關注,每個都利用許多開發人員往往不具備的技能。 最重要的不一定是架構師具有什麼能力,而是他們在這些不同領域有足夠的專業知識才能有效。只有熟練掌握上述六個領域之一的架構師,才會成為具有良好專業知識水平的架構師。

The Well Rounded Architect |

相關文章