系統架構師的技能要求

架構師負責設計系統整體架構,確定系統實現的行動綱領,使設計的項目儘量高性能、高可用、易實現,並且在上線後運維方便,在新功能加入時擴展性良好。那麼系統架構師的技能要求有哪些呢?

系統架構師的技能要求

  架構師的能力要求:

1. 較強的代碼能力,對日常問題有豐富的閱歷及解決之道,設計不是空談,需要實踐,代碼能力、解決問題的能力是系統實踐的一個副產品;

2. 較好的抽象能力,業務需求在架構師消化後,需要轉化爲設計藍圖,這中間需要大量的抽象。

3. 良好的溝通和組織能力,架構設計出來,需要組織討論、頻繁溝通,讓項目組成員理解架構組成及設計取捨的原因,明白架構設計中的how和why,在遇到疑問、反對、建議時,能進行良好的溝通並有序的推進。

4. 較好的團隊協作能力和領導能力,架構師需要得到項目組成員的認可,在關鍵時刻對技術的選擇作出及時、有效的決定,併爲決定負責。

  架構師的.主要職責:

1. 把業務需求轉換爲實現架構,定義每個組成模塊的外部特性,比如它的依賴、性能、異常處理等,並確定模塊之間如何通信,最終形成可以指導業務開發的行動圖;

2. 組織討論,組織更多的人來了解、討論架構,能夠讓大家理解架構整體方案、模塊特性及邊界、決策權衡點,進而可以自行進行組件服務的設計及實現;

3. 協助項目經理制定開發計劃和控制項目進度;

4. 確定系統的基礎架構、實現技術,必要時組織技術調研和攻關。

  延伸閱讀:架構師應該是一種角色

每個資深的團隊成員都可以也應該扮演架構師的角色,不用每個團隊指定一個人來當。實際上,最好有多個人來扮演架構師。在會議中討論架構設計和討論功能設計類似,如果你是那個要實現所有事情的人,那麼你需要帶着明確的想法去參會。任何的過度設計(大部分架構師經常會犯這個錯誤)需要在你面前證明是合理的——“我是否願意去寫這些模板代碼,或者是否有一種更簡單優雅的實現方式”。

職位可以使“軟件工程師”,但角色可以是“敏捷大師”、”架構師”、”持續集成官”,等等。如果公司需要一個“架構師議會”去決定系統間更宏觀的整合,開發者可以提名某個人去參與這些會議,這個人有可能是對這些系統最瞭解的人。

我知道現在架構師在想什麼——有一些更加高層次的關注點開發要麼不太能理解要麼不應該爲此被打擾。大錯特錯!如果你的開發不理解更高層次的架構規劃,那麼遲早你會遇到問題的。是的,因爲他們要讓代碼適應你正在規劃的更大的藍圖,他們需要被打擾。

還有一方面於團隊成員的態度和動態的交流。如果某個不是特別優秀或者受人尊敬的開發被提升爲“架構師”,那麼可能破壞團隊的和諧。另一方面,某些人被提升爲“架構師”以後可能會過於自信,以至於他們會想當然的去做出設計決定,而不管那些反對他們的好的爭論點。