系統架構設計師角色是技術上的領導和系統開發創新遠景的來源。 |
系統架構師應具備的技能:
系統架構設計師角色要求精通促成系統工程的多個規程,並在分析和解決方案合成方面技術嫺熟。系統架構設計師還必須善於啓發式和歸納式推理(大部分系統體系結構所依賴的),以及對其他工程規程的演繹推理。系統架構設計師不只是地考慮解決方案的技術,還考慮許多其他問題,比如系統操作、性能、經濟可行性、可維護性和後勤支持,以及有關這些問題的政治、技術、社會、財務和環境因素(及其他因素)。
系統架構設計師必須成熟有經驗,使其能夠完成對象分析和貿易研究以從多個解決方案中選擇最優解決方案,能夠在信息不完整或不明確時作出好的判斷,並能夠認識到“最好”通常是由政治、經濟以及工程考慮支配的。
在處理由人員、硬件和軟件組合的系統時,系統架構設計師需要對任何解決方案中由人員和硬件組件施加的物理限制和約束有很強的判斷力。除了在系統工程方面的經驗(以及對聯合規程方面的知識,如操作調查和工程經濟)之外,系統架構設計師在軟件工程(由於它在現代系統中普遍存在)方面也要有堅實的基礎以及以下素質:
- 在問題領域的經驗和對需求的深入理解。該專業技能可以在系統體系結構團隊中分攤。
- 領導品質,用以推動跨各團隊的技術工作,在壓力下制定關鍵決策,並堅持貫徹這些決策。爲達到效果,系統架構設計師和項目經理必須緊密協作,前者領導技術事宜,後者領導管理事宜。系統架構設計師必須有權作出技術決策。
- 溝通技能,以贏得信任,進行說服、激勵和指導。系統架構設計師不是通過職位擁有權利,而是因爲有目共睹的能力和成績。爲了達到效果,系統架構設計師必須指揮項目團隊、項目經理、顧客和用戶團體,並管理團隊。
- 面向目標和主動性,專注於成果。系統架構設計師是項目背後的技術驅動力,而不是顧問或夢想家。對於一名成功的系統架構設計師而言,其職業就是在壓力和許多不確定情況下作出一系列次最佳(但通常不是非常次最佳)決策。只有那些能夠專注於需做之事的人纔會在這種環境中獲得成功。
系統架構設計師角色具有系統設計人員的技能,但前者的技能重點是戰略性的,並不詳細。
系統架構設計師與軟件設計人員的關係
這兩個角色有很多相似點;實際上對於那些因規模或複雜程度而被看作“系統”開發、但仍是大型的或完整的軟件項目來說,這兩個角色是合爲一體的。 然而,通常情況下,系統架構設計師比軟件設計人員的支持範圍大。 系統架構設計師必須對付物理上強加的約束,這些約束在軟件更易適應的領域中不存在。但是,正是軟件的靈活性使得體系結構演進具有可能的道路,這在以前是無法設想的。因此,軟件設計人員和系統架構設計師之間並不是嚴格的從屬關係:從軟件體系結構上考慮的反饋可能對系統的體系結構有深遠的影響;否認這一點將要承擔潛在的次最佳系統體系結構的風險,這些體系結構基於軟件體系結構可從需求的分配(由系統架構設計師完成)派生到計算平臺這一簡單的概念。但是以下說法也是正確的:在系統架構設計師和軟件設計人員的團隊中,系統架構設計師角色的職責要求系統架構設計師是團隊中的佼佼者,因爲系統是最終產品。