角色: 軟體架構師
這個角色指揮系統軟體架構的開發,包括提升和建立重要技術決策的支援,這些決策約束專案的整體設計與實作。
關係
執行: 負責對象:
額外執行:修改項目:
主要說明

軟體架構師全權負責推動重大的技術決策,以軟體架構來表達。通常包括識別和詳細記載系統的重大架構層面,包括系統的需求、設計、實作及部署「觀點」。

設計師也負責說明這些決策的理由、協調各關係人的意見、降低技術風險,以及確保有效地傳達、檢驗及遵守決策。

內容
多次出現的項目
選用
規劃Yes
人員配置
技巧

「優秀的設計師應該是文學家、數學家、精通史學、喜好哲學、欣賞音樂、通曉醫理、具備法學常識、熟悉天文學和天體計算。」 - 維特魯威,約西元前 25 年

總而言之,軟體架構師必須多才多藝,表現成熟、有願景且經驗豐富,能夠在資訊不完整的情況下,迅速掌握重點並做出有經驗、關鍵性的判斷。更明確地說,軟體架構師或架構團隊的成員必須兼備下列技能:

  • 問題領域和軟體工程領域的經驗,可徹底瞭解需求。如果有一個團隊,則這些品質可延伸至所有團隊成員,但至少要由一位軟體架構師提供專案的整體願景。
  • 領導能力,以利推動各團隊的技術工作,且在面對壓力下制訂重大決策和貫徹這些決策。為了提高效率,軟體架構師和專案管理人員必須密切合作,由軟體架構師負責主導技術議題,專案管理人員負責主導行政議題。軟體架構師必須有制訂技術決策的權力。
  • 溝通能力,以取得信任、說服、激勵及監督。軟體架構師不能行獨裁領導,只能以專案全體共識為依歸。為了提高效率,在專案團隊、專案管理人員、客戶、使用者群組及管理團隊之間,軟體架構師必須有一定的地位。
  • 目標取向和積極性,努力不懈,竭盡所能達到目的。軟體架構師是專案背後的技術動力,並非空想家或不切實際的人。成功軟體架構師的使命就是在不確定性和壓力下制訂的一連串次佳決策。只有能夠準確掌握需求的人,才有辦法在這種專案環境下達成任務。

從專家的觀點看來,軟體架構師也要具備角色:設計師的能力。但不同於設計師,軟體架構師有下列特色:

  • 傾向於通才,而不是專家,懂得許多技術的整體概念,而非少數技術的細節
  • 制訂概括性技術決策,因此,廣泛的知識和經驗及溝通和領等才能是關鍵。
指派方法

如果專案很大,有必要組成架構團隊,則必須以集思廣義為目標,匯集眾人經驗並分享軟體工程流程的常識。架構團隊不一定是各團隊、專業領域或承包商的代表所組成的委員會。軟體架構是一項專任的職務,由職員長期奉獻心力。

在小型專案中,單一個人可能同時兼任專案管理人員和軟體架構師。不過,在情境上,最好由不同的人來分飾這些角色,以防某一個角色面對的時間壓力排擠另一個角色。

詳細資訊