系統架構師

系統架構師

軟件系統架構
系統架構師是一個最終确認和評估系統需求,給出開發規範,搭建系統實現的核心構架,并澄清技術細節、掃清主要難點的技術人員。主要着眼于系統的“技術實現”。搭建系統實現的核心架構,對整個軟件架構、關鍵構件、接口進行總體設計,并澄清關鍵技術細節,給出開發規範,負責、管理并最終确認和評估非功能性系統需求。主要着眼于系統的“技術實現”,同時還要考慮系統的“組織協調”。要對所屬的開發團隊有足夠的了解,能夠評估該開發團隊實現特定的功能需求目标和資源代價。
    中文名:系統架構師 外文名:System Architect 别名:企業架構師或者系統設計師 屬 性:職業

知識結構

軟件系統架構師綜合的知識能力包括9個方面,即:

1、戰略規劃能力。

2、業務流程建模能力。

3、信息數據結構能力。

4、技術架構選擇和實現能力。

5、應用系統架構的解決和實現能力。

6、基礎IT知識及基礎設施、資源調配能力。

7、信息安全技術支持與管理保障能力。

8、IT審計、治理與基本需求分析、獲取能力。

9、面向軟件系統可靠性與系統生命周期的質量保障服務能力。

作為系統架構師,必須成為所在開發團隊的技術路線指導者;具有很強的系統思維的能力;需要從大量互相沖突的系統方法和工具中區分出哪些是有效的,哪些是無效的。架構師應當是一個成熟的、豐富的、有經驗的、有良好教育的、學習快捷、善溝通和決策能力強的人。豐富是指他必須具有業務領域方面的工作知識,知識來源于經驗或者教育。他必須廣泛了解各種技術并精通一種特定技術,至少了解計算機通用技術以便确定那種技術最優,或組織團隊開展技術評估。優秀的架構師能考慮并評估所有可用來解決問題的總體技術方案。需要良好的書面和口頭溝通技巧,一般通過可視化模型和小組讨論來溝通指導團隊确保開發人員按照架構建造系統。

具備的能力

(1)技術能力

技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。所以,你需要知道所有主流技術的基本原理、應用場景,及快速解決問題的能力。所以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。你需要清楚在什麼樣的場景用什麼樣的技術比較合适,并知道可能存在什麼樣的風險。來了需求,你腦袋是空的,不知道用什麼技術這是最可怕的。

(2)架構能力

這個可以表現為抽象能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規範制定。架構出來了至少可以滿足最近的發展,或者可以很方便對現有架構進行擴容。有人說架構不需要懂業務,我面試過的就有明确表示不做業務架構。當然有方面的架構師,如中間件架構師,運維基礎設施架構師等。但一般的後端架構師都是需要了解業務,不理解業務你如果進行系統分解,服務劃分,及根據不同業務作出不同的架構。技術都是為業務服務的,不站在業務的角度設計架構,那架構就是空談。

(3)溝通能力

這個看起來不是最重要的,其實也非常重要。作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。有一句話怎麼說的,領導就喜歡拍馬屁的。做領導的大多不是技術特别牛的,但溝通能力肯定是很好的。

職業定位

系統構架,是對已确定的需求的技術實現構架、作好規劃,運用成套、完整的工具,在規劃的步驟下去完成任務。系統架構師做為系統架構的設計者,關系到應用系統成敗的關鍵。系統架構師是許多程序員的夢想職業。

主要功能

系統架構師的主要功能包括:

(1)系統架構師是軟件項目的總體設計師,是軟件組織新産品的開發與集成、新技術體系的構建者。

(2)系統架構師是在技術上對所有重要事情做出決定的人(系統架構師在整個軟件開發過程中都起着重要作用,并随着開發進程的推進而其職責或關注點不斷地變化)。

(3)需求階段,軟件架構師負責理解和管理非功能性系統需求,比如軟件的可維護性、性能、複用性、可靠性、有效性和可測試性等。審查客戶和市場人員提出的需求,确認開發團隊提出的設計;組織開發團隊成員和開發過程的定義;協助需求分析師完成“用戶需求說明書”、“需求變更說明書”。

(4)設計階段,架構師負責對整個軟件架構、關鍵構件、接口的設計。協助系統分析師完成《系統概要設計說明書》。

(5)編碼階段,架構師則成為程序員的顧問,并且經常性地要舉行一些技術研讨會、技術培訓班等。

(6)測試及實施階段,随着軟件開始測試、集成和交付,集成和測試支持将成為軟件架構師的工作重點。

作職責

系統架構師的職責就是設計一個公司的基礎架構,并提供關于怎樣建立

和維護系統的指導方針。具體來講,系統架構師的職責主要體現于以下幾方面:

1負責公司系統的架構設計、研發工作;

2承擔從業務向技術轉換的橋梁作用;

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

4負責輔助并指導SA開展設計工作;

5負責組織技術研究和攻關工作;

6負責組織和管理公司内部的技術培訓工作;

7負責組織及帶領公司内部員工研究與項目相關的新技術。

8管理技術支撐團隊并給項目、産品開發實施團隊提供技術保障。

9理解系統的業務需求,制定系統的整體框架(包括:技術框架和業務框架)

10對系統框架相關技術和業務進行培訓,指導開發人員開發。并解決系統開發、運行中出現的各種問題。系統架構師的目的:

11對系統的重用、擴展、安全、性能、伸縮性、簡潔等做系統級的把握。

————系統架構師的工作在于針對不同的情況篩選出最優的技術解決方案,而

不是沉在具體實現細節上。此外系統架構師是不可培養的,好的系統架構師也許不是一個優秀的程序員,但是不能不懂技術之間的差别,技術的發展趨勢,采用該技術的當前成本和後繼成本,該技術與具體應用的偶合程度,自己可以調配的資源狀況,研發中可能會遇到的風險,如何回避風險。這些才是架構師需要考慮的主要内容。

架構分類

第一種是基礎架構的設計規劃,例如:OS,硬件,網絡,各種應用服務器等等。

第二種是軟件開發設計的架構師,他們負責規劃程序的運行模式,層次結構,調用關系,規劃具體的實現技術類型,甚至配合整個團隊做好軟件開發中的項目管理。

職業概述

系統構架師是最近在國内外迅速成長并發展良好的一個職位,它的重要性及給IT業所帶來的影響是不言而喻的。在我國雖然還存在一定的争論性、不可預測性、不理解性,不确定性,但它确實是時代發展的需要。IT業各公司為了讓他們現有的IT系統實現更大的價值,紛紛進行了重大的技術變革,

這樣一來,對高水平的架構師的需求激增。對負責架構的管理人員的需求不斷增大,其增長速度比對CIO的需求還要快,這是因為,架構師會給一個組織帶來大量專門技術。公司需要一些在架構方面有真才實學,而且學得深且廣的人才。

在比爾·蓋茨的衆多稱謂中,據說他更偏愛“首席軟件架構師”。同樣,在網易創始人丁磊名字前,也有“首席架構師”這樣的稱謂。由此可見,對于企業來說,架構師就是靈魂的創造者。

作用

系統架構師該怎麼來實現其“架構”企業的職能呢?尤其在設計企業IT策略時,該怎樣體現架構師的價值?這裡以實例說明:

摩托羅拉

摩托羅拉的副總裁Toby Redshaw說,架構師是“IT策略中的中樞”,而且這一角色對公司的影響确實非常大。當Toby Reshaw在2001年進入摩托羅拉并擔任其策略暨架構副總裁時,他俨然一位購房者對一套搖搖欲墜的公寓進行估價一樣。他并不是僅僅隻作些表面上的修改,而是拟定了一個重建摩托羅拉整個基礎結構的計劃,這個計劃可以徹底修整公司的基礎建設,就像一個建築師設計一幢房子一樣,Redshaw拟出了一張技術構架藍圖,一座技術性的建築,以便使被他稱作“如意大利面條般錯亂的應用程序,機器和管線”那些東西變得井然有序。他說,隻要選擇了正确的架構策略并用對了人,摩托就可以用比以前更快的速度生産出大量應用軟件,而且可以減少維持重疊系統的費用。Redshaw說:“如果你連建築架構都搞不好,就算你的石匠技術再高明,又有什麼用?架構師是IT策略中的中樞。”像Redshaw這樣的系統架構師們在企業内部的影響力非常大。很久以來,雖然他們一直在信息技術部門擔任重要職務,但是他們經常受委托提供全面概況分析,并提出一些關于如何遵照标準執行這些任務的建議,而這些對日常運作的影響極其有限。随着各公司都在尋找重建他們的IT系統,使其更能有效節省成本,更靈活的方法,架構師愈來愈被看作是至關重要的因素。

一個定義明确的架構的目标在于降低運行複雜的運算系統的費用。一個公司可以采用一種特定的數據庫配置,如微軟的數據庫,進而将系統标準化,而不需要讓公司的每個部門安裝它們自己所需要的數據庫服務器。

Express

Express的技術架構副總裁Andy Miller說:“如果你沒有一項強有力的架構策略,人人各行其是,最後以得到六種服務器和軟件平台而告終,你的系統變成了大雜燴,而那将使你的費用激增。”把架構師獨立出來有很多好處,比如系統的整體把握,質量上的保障,技術上的先進性,架構的靈活性,高效性,還可有效地降低成本。試想,1個月薪1w的架構師+10個月薪5k的工程師,肯定比11個月薪6k的高級工程師效果要好。一般來說,級别越高的架構師,經驗更豐富,争相聘請的人也多,他們也是與公司全部的IT策略密切相關的專業人員。

具備能力

作為軟件開發的設計架構師,那麼必須擁有一定的編程技能,同時有高超的學習新的架構設計、程序設計技能。另外,我覺得作為軟件架構師,還必須了解一定的硬件、網絡、服務器的基本知識。要不然,你都不知道有些什麼材料可以用,你怎麼去根據實際情況去規劃你的軟件架構呢?忽視程序設計能力的持續跟新,是永遠不能夠成為一個成功的系統架構師。

一般來講,系統架構師應該擁有以下幾方面的能力:

1:具備8年以上軟件行業工作經驗;

2:具備4年以上C/S或B/S體系結構軟件産品開發及架構和設計經驗;

3:具備3年以上的代碼編寫工作經驗;

4:具備豐富的大中型開發項目的總體規劃、方案設計及技術隊伍管理經驗;

5:對相關的技術标準有深刻的認識,對軟件工程标準規範有良好的把握;

6:對.Net/JAVA技術及整個解決方案有深刻的理解及熟練的應用,并且精通WebService/J2EE架構和設計模式,并在此基礎上設計産品框架;

7:具有面向對象分析、設計、開發能力(OOA、OOD、OOP),精通UML和ROSE,熟練使用Rational Rose、PowerDesigner等工具進行設計開發;

8:精通大型數據庫如Oracle、Sql Server等的開發;

9:對計算機系統、網絡和安全、應用系統架構等有全面的認識,熟悉項目管理理論,并有實踐基礎;

10:在應用系統開發平台和項目管理上有深厚的基礎,有大中型應用系統開發和實施的成功案例;

11:良好的團隊意識和協作精神,有較強的内外溝通能力。

角色區别

系統架構師與産品經理的關系及區别

産品經理通常是指負責産品設計的“專人”。一個優秀的理想的産品經理,應同時具備較高的商業素質和較強的技術背景。産品經理要有深厚的領域經驗,也就是說,對該軟件系統要應用到的業務領域非常之熟悉。比如,開發房地産銷售軟件的産品經理,應該對房地産公司的标準銷售流程了如指掌,甚至比大多數銷售人員還要清楚。如果開發的是通用産品,他/她還具備對市場、潛在客戶需求的深刻洞察力。那麼,系統架構師與産品經理有什麼不同呢?我們不應該把二者混為一談,這是不少論述和實踐常犯的錯誤。我看來,如果把開發軟件比作攝制電影,産品經理之于系統架構師,就正像編劇之于導演。産品經理雖然要有一定技術背景,但仍應屬于“商業人士(business people)”,而系統架構師則肯定是一個技術專家。二者看待問題的立場、角度和出發點完全不同。

系統架構師與項目經理的關系及區别

軟件項目經理是指對項目控制/管理,關注項目本身的進度、質量,分配、調動、協調、管理好人、财、物等資源的負責人。對于軟件項目經理來講,包括項目計劃、進度跟蹤/監控、質量保證、配置/發布/版本/變更管理、人員績效評估等方面。優秀的項目經理需要的素質,并不僅在于會使用幾種軟件或是了解若幹抽象的方法論原則,更重要的在于從大量項目實踐中獲得的寶貴經驗,以及交流、協調、激勵的能力,甚至還應具備某種個性魅力或領袖氣質(Charisma)。p由此可見,項目經理和系統架構師在職責上有很大差異。混同這兩個角色,往往也會導緻低效、無序的開發。特别是,從性格因素上講,單純的技術人員傾向于忽視“人”的因素,而這正是管理活動的一個主要方面。另外,就像戰争中的空軍掩護(Air Cover)一樣,專職的項目經理能夠應付開發過程中大量的偶發事件和雜務,對于一個規模稍大的項目,這些雜務本身就能占用一個全職工作者的幾乎全部時間。在一個項目中,推動項目發展的是系統構架師,而不是項目經理。項目經理的職責隻是配合系統構架師,提供各個方面的支持。主要職責是與内外部溝通和管理資源(包括人)。系統構架師提出系統的總體構架,給出開發指導。一個項目中,項目經理的角色什麼?如果他即使管理人員又是設計人員,則必須比别人強,能夠有讓别人服的東西。如果他隻是項目管理人員,系統構架師有專門人員,就可以不用精通或者說了解it各個方面的知識,如果了解更好。另外,如果在一個項目沒有人在技術構架上和開發指導上負全部責任,而是每個人都負責一快的架構、分析、設計、代碼和實施等,最後肯定會失去管理。

系統架構師與系統分析師的關系及區别

系統分析師(System analyst)是指對系統開發中進行業務需求分析、系統需求分析、可行性分析、業務建模和指導項目開發的人。系統分析師所面臨的往往是有許多不确定性的事件,需要對這些不确定性的事件進行分析、總結,使之得出一個相對可靠的确定性結論或實施方案模型。一般意思上講,系統分析師的水平将影響系統開發的質量,甚至成敗。但在一個完善的系統開發隊伍中,還需要有業務專家,技術專家和其他輔助人員。對于大型企業或者項目,如果一人承擔多個角色,往往容易發生顧此失彼的現象。

系統分析師對業務系統進行分析、建模,他的任務、目标是明确的。系統架構師協同系統分析師的工作,建議系統分析師按什麼标準,什麼工具,什麼模式,什麼技術去思考系統。同時,系統架構師應該對系統分析師所提出的問題,碰到的難題及時地提出解決的方法。系統架構師在項目中擔任技術骨幹的角色,負責技術實施中的重點技術問題攻關。同時,又是系統分析師的技術顧問,為整個項目的技術框架與技術細節的展開和落實提供強有力的技術保障。

評估成績

重要性

優秀的系統架構師是保證軟件系統強大生命力的核心人物。專業架構師能夠幫助公司全面研究現有架構和設計模式、評估系統設計的優缺點和可能存在的風險,通過一系列的專題指導和具體案例幫助公司掌握先進的、成熟的設計模式,簡化複雜的業務邏輯和需求,确定系統最适合法人方案。在必要的情況下,還可就特定領域或課題,為開發人員提供定制指導。通過上面的介紹,我們對系統構架師有了的較深刻的認識,我們明白了系統構架師的地位,作用,工作職責及任職條件,同時還區别出與其他角色的不同,那麼如何評估系統構架師的工作成績,

評估依據

如何識别一個合格的優秀的系統構架師是不難的。

具體來講,我們可以通過以下幾方面來評估系統構架師的工作成績:

1:系統構架師是否是某一技術領域的專家;

2:系統構架師能否指導分析員的設計工作,發現并指出設計存在的問題并提出解決方法,評審他們的工作;

3:系統構架師能否指導軟件工程師進行開發工作,發現并指出編碼存在的問題并提出解決方法,評審他們的工作;

4:系統構架師能否協助好項目經理制定項目計劃和控制項目進度;

5:系統構架師能否及時有效地解決設計、開發人員所提出的問題,解決技術上的難題;

6:系統構架師能否制訂并規範系統設計和開發文檔、工具、模型;能否讓其他人員容易理解;

7:系統構架師能否經常組織并帶領公司内部員工研究、學習與項目相關的新技術;

8:系統構架師能否組織和管理好公司内部的技術培訓工作,技術研究和公關工作;

9:系統構架師是否有良好的團隊意識和協作精神,有較強的内外溝通能力;

10:系統構架師是否能管理好技術支撐團隊并給項目、産品開發實施團隊提供技術保障;

11:系統構架師所設計的系統架構是否合理,技術是否先進,能否滿足客戶的要求;

12:系統構架是否有擴展性,安全性,能否經受壓力測試,網絡流量在超用戶數下如何控制;

13:系統邊界如何處理,瓶頸問題如何解決等;

14:系統設計前期、中期、後期所要解決的問題,是否有階段性,裡程碑的标識;

15:是否有分析、識别并盡可能地回避風險,降低風險所引發問題成本的能力;

16:能否給公司降低開發成本,提高效率;

職業行情

系統架構師的一般月薪範圍在20000-100000美元左右。系統架構師是軟件項目的總設計師,是軟件企業的新産品、新技術體系的構建者,是軟件開發中急需的高層次技術人才。其是由系統開發工程師發展而來,可以向研發總監,高級技術總監等高層次的方向發展。

上一篇:遊戲引擎

下一篇:HTML5

相關詞條

相關搜索

其它詞條