「優秀的設計師應該是文學家、數學家、精通史學、喜好哲學、欣賞音樂、通曉醫理、具備法學常識、熟悉天文學和天體計算。」 - 維特魯威,約西元前 25 年
總而言之,軟體架構師必須多才多藝,表現成熟、有願景且經驗豐富,能夠在資訊不完整的情況下,迅速掌握重點並做出有經驗、關鍵性的判斷。更明確地說,軟體架構師或架構團隊的成員必須兼備下列技能:
-
問題領域和軟體工程領域的經驗,可徹底瞭解需求。如果有一個團隊,則這些品質可延伸至所有團隊成員,但至少要由一位軟體架構師提供專案的整體願景。
-
領導能力,以利推動各團隊的技術工作,且在面對壓力下制訂重大決策和貫徹這些決策。為了提高效率,軟體架構師和專案管理人員必須密切合作,由軟體架構師負責主導技術議題,專案管理人員負責主導行政議題。軟體架構師必須有制訂技術決策的權力。
-
溝通能力,以取得信任、說服、激勵及監督。軟體架構師不能行獨裁領導,只能以專案全體共識為依歸。為了提高效率,在專案團隊、專案管理人員、客戶、使用者群組及管理團隊之間,軟體架構師必須有一定的地位。
-
目標取向和積極性,努力不懈,竭盡所能達到目的。軟體架構師是專案背後的技術動力,並非空想家或不切實際的人。成功軟體架構師的使命就是在不確定性和壓力下制訂的一連串次佳決策。只有能夠準確掌握需求的人,才有辦法在這種專案環境下達成任務。
從專家的觀點看來,軟體架構師也要具備角色:設計師的能力。但不同於設計師,軟體架構師有下列特色:
-
傾向於通才,而不是專家,懂得許多技術的整體概念,而非少數技術的細節
-
制訂概括性技術決策,因此,廣泛的知識和經驗及溝通和領等才能是關鍵。
|