軟件系統架構(gou)師(shi)綜(zong)合的知(zhi)識能力包括9個(ge)方(fang)面,即:
1、戰略規劃能力。
2、業務流程建模能力。
3、信(xin)息數據結(jie)構(gou)能力(li)。
4、技術(shu)架構(gou)選擇(ze)和實現(xian)能力。
5、應用(yong)系統架構(gou)的(de)解決和實(shi)現能力。
6、基(ji)(ji)礎IT知(zhi)識及基(ji)(ji)礎設施、資源調配能力。
7、信息安全技術支持(chi)與管理保障能力。
8、IT審(shen)計、治理與基本需求分析、獲取能力(li)。
9、面(mian)向軟件系(xi)統可靠性與系(xi)統生命周期的質量保障服務能(neng)力。
作(zuo)(zuo)為系(xi)(xi)(xi)統架構師,必須成為所(suo)在開(kai)發團隊的(de)(de)(de)(de)(de)(de)(de)技(ji)術(shu)(shu)路線指導者;具(ju)有很強(qiang)(qiang)的(de)(de)(de)(de)(de)(de)(de)系(xi)(xi)(xi)統思維(wei)的(de)(de)(de)(de)(de)(de)(de)能力;需(xu)要從大(da)量互相沖(chong)突(tu)的(de)(de)(de)(de)(de)(de)(de)系(xi)(xi)(xi)統方(fang)法和(he)工具(ju)中(zhong)區(qu)分出哪(na)些(xie)是有效的(de)(de)(de)(de)(de)(de)(de),哪(na)些(xie)是無效的(de)(de)(de)(de)(de)(de)(de)。架構師應當是一(yi)個(ge)成熟的(de)(de)(de)(de)(de)(de)(de)、豐(feng)富(fu)的(de)(de)(de)(de)(de)(de)(de)、有經驗的(de)(de)(de)(de)(de)(de)(de)、有良好(hao)(hao)教育的(de)(de)(de)(de)(de)(de)(de)、學習快捷(jie)、善溝通(tong)和(he)決(jue)策能力強(qiang)(qiang)的(de)(de)(de)(de)(de)(de)(de)人。豐(feng)富(fu)是指他必須具(ju)有業(ye)務領域(yu)方(fang)面的(de)(de)(de)(de)(de)(de)(de)工作(zuo)(zuo)知(zhi)識,知(zhi)識來(lai)源于經驗或者教育。他必須廣泛了解各種技(ji)術(shu)(shu)并(bing)精通(tong)一(yi)種特(te)定(ding)技(ji)術(shu)(shu),至少了解計算(suan)機通(tong)用(yong)技(ji)術(shu)(shu)以便確定(ding)那(nei)種技(ji)術(shu)(shu)最優,或組(zu)織團隊開(kai)展技(ji)術(shu)(shu)評估(gu)。優秀的(de)(de)(de)(de)(de)(de)(de)架構師能考慮并(bing)評估(gu)所(suo)有可(ke)用(yong)來(lai)解決(jue)問題的(de)(de)(de)(de)(de)(de)(de)總體技(ji)術(shu)(shu)方(fang)案。需(xu)要良好(hao)(hao)的(de)(de)(de)(de)(de)(de)(de)書面和(he)口頭(tou)溝通(tong)技(ji)巧,一(yi)般通(tong)過可(ke)視化模(mo)型和(he)小(xiao)組(zu)討(tao)論來(lai)溝通(tong)指導團隊確保開(kai)發人員(yuan)按照架構建造系(xi)(xi)(xi)統。
(1)技術能力
技術能力(li),不(bu)用(yong)置疑肯(ken)定(ding)是最重要的。技術能力(li)弱的架構(gou)不(bu)是一個好架構(gou)。所(suo)(suo)(suo)以,你(ni)需要知道所(suo)(suo)(suo)有主流技術的基本原理(li)、應(ying)用(yong)場景,及快速(su)解決問題的能力(li)。所(suo)(suo)(suo)以,架構(gou)師必須要有見識(shi),所(suo)(suo)(suo)需知識(shi)面肯(ken)定(ding)是要不(bu)斷拓(tuo)展的。你(ni)需要清(qing)楚(chu)在什(shen)么(me)樣的場景用(yong)什(shen)么(me)樣的技術比較合適,并知道可能存在什(shen)么(me)樣的風(feng)險。來(lai)了需求(qiu),你(ni)腦袋是空的,不(bu)知道用(yong)什(shen)么(me)技術這是最可怕的。
(2)架構能力
這個可(ke)以(yi)表(biao)現為(wei)抽象能(neng)力、整體規劃能(neng)力、及(ji)設(she)計能(neng)力。你需要照在業務(wu)(wu)(wu)的(de)(de)角度進行(xing)(xing)系統分解(jie)(jie)、技術選(xuan)型、架(jia)構(gou)(gou)搭(da)建,以(yi)及(ji)規范制(zhi)定。架(jia)構(gou)(gou)出(chu)來了(le)至少可(ke)以(yi)滿足(zu)最近的(de)(de)發(fa)展,或(huo)者可(ke)以(yi)很方便對現有(you)架(jia)構(gou)(gou)進行(xing)(xing)擴容。有(you)人說架(jia)構(gou)(gou)不(bu)(bu)需要懂業務(wu)(wu)(wu),我面試過的(de)(de)就(jiu)有(you)明確(que)表(biao)示不(bu)(bu)做(zuo)業務(wu)(wu)(wu)架(jia)構(gou)(gou)。當然有(you)方面的(de)(de)架(jia)構(gou)(gou)師,如中間件架(jia)構(gou)(gou)師,運維基(ji)礎設(she)施(shi)架(jia)構(gou)(gou)師等。但一般的(de)(de)后端架(jia)構(gou)(gou)師都是需要了(le)解(jie)(jie)業務(wu)(wu)(wu),不(bu)(bu)理(li)解(jie)(jie)業務(wu)(wu)(wu)你如果進行(xing)(xing)系統分解(jie)(jie),服(fu)務(wu)(wu)(wu)劃分,及(ji)根(gen)據不(bu)(bu)同(tong)業務(wu)(wu)(wu)作出(chu)不(bu)(bu)同(tong)的(de)(de)架(jia)構(gou)(gou)。技術都是為(wei)業務(wu)(wu)(wu)服(fu)務(wu)(wu)(wu)的(de)(de),不(bu)(bu)站在業務(wu)(wu)(wu)的(de)(de)角度設(she)計架(jia)構(gou)(gou),那架(jia)構(gou)(gou)就(jiu)是空談。
(3)溝通能力
這個看起來不是(shi)最(zui)重要(yao)的(de)(de)(de),其實也非(fei)常重要(yao)。作(zuo)為一個優(you)秀的(de)(de)(de)架(jia)構師(shi),你需要(yao)清楚(chu)的(de)(de)(de)知道客戶的(de)(de)(de)需求,需要(yao)不斷(duan)和需求人員進行溝通,以達(da)到客戶真正的(de)(de)(de)目的(de)(de)(de)。不論(lun)是(shi)不是(shi)架(jia)構師(shi),任何一個職場人,提高自己的(de)(de)(de)溝通表達(da)能力無疑是(shi)不可(ke)或缺的(de)(de)(de)。有一句話怎么說的(de)(de)(de),領導(dao)就喜歡拍(pai)馬屁的(de)(de)(de)。做領導(dao)的(de)(de)(de)大(da)多(duo)不是(shi)技(ji)術(shu)特別牛(niu)的(de)(de)(de),但溝通能力肯定是(shi)很好的(de)(de)(de)。
系(xi)統構(gou)架(jia),是對已(yi)確定的(de)需求的(de)技術實現(xian)構(gou)架(jia)、作(zuo)好規劃,運用成套、完整的(de)工具(ju),在規劃的(de)步驟下去完成任務。系(xi)統架(jia)構(gou)師做為系(xi)統架(jia)構(gou)的(de)設計者(zhe),關系(xi)到應(ying)用系(xi)統成敗的(de)關鍵。
系統架構師(shi)的(de)主要功能包(bao)括:
(1)系統架構師是軟件項目的(de)總體設計師,是軟件組織新產品的(de)開發與(yu)集成、新技術體系的(de)構建(jian)者。
(2)系(xi)統架構師是在技術上對所有重要事情(qing)做出決定的人(系(xi)統架構師在整個軟件開發過程中都起著重要作用,并(bing)隨著開發進(jin)程的推進(jin)而其職責或關(guan)注點不斷(duan)地變化(hua))。
(3)需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu)階段,軟件(jian)(jian)架(jia)構師負責理解和管理非(fei)功能性(xing)系統(tong)需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu),比如(ru)軟件(jian)(jian)的(de)可(ke)(ke)維護(hu)性(xing)、性(xing)能、復用性(xing)、可(ke)(ke)靠性(xing)、有效性(xing)和可(ke)(ke)測試性(xing)等。審(shen)查客戶和市(shi)場人員提出的(de)需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu),確認開發團(tuan)隊提出的(de)設計;組織開發團(tuan)隊成員和開發過程(cheng)的(de)定義(yi);協助(zhu)需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu)分析師完成“用戶需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu)說(shuo)明書”、“需(xu)(xu)(xu)(xu)(xu)求(qiu)(qiu)變更說(shuo)明書”。
(4)設(she)(she)計(ji)階段,架(jia)構(gou)師負責對整個軟件(jian)架(jia)構(gou)、關(guan)鍵構(gou)件(jian)、接口的設(she)(she)計(ji)。協助(zhu)系(xi)統分析師完成《系(xi)統概要設(she)(she)計(ji)說明書》。
(5)編碼階段(duan),架構師(shi)則成為程序員的顧問,并且經常性(xing)地要(yao)舉行一些技(ji)術(shu)(shu)研討會、技(ji)術(shu)(shu)培(pei)訓班等。
(6)測試及實施階(jie)段,隨著軟(ruan)(ruan)件(jian)(jian)開(kai)始測試、集成(cheng)和交付,集成(cheng)和測試支持將成(cheng)為軟(ruan)(ruan)件(jian)(jian)架(jia)構師的(de)工作重點(dian)。
系(xi)統架構師的(de)職責就是設計一個(ge)公司的(de)基礎架構,并(bing)提(ti)供關(guan)于(yu)怎(zen)樣建立
和維護(hu)系統的指導方(fang)針。具(ju)體來講,系統架構師的職責主要體現(xian)于以下幾方(fang)面:
1 負責公司系統的架(jia)構(gou)設計、研發工(gong)作(zuo);
2 承擔從業務(wu)向技術(shu)轉(zhuan)換的橋梁作用;
3 協助(zhu)項目(mu)經理(li)制定項目(mu)計劃和控制項目(mu)進度;
4 負(fu)責輔助并指導 SA 開展設計工作;
5 負責組織技術研究和攻關工作;
6 負(fu)責(ze)組織和管(guan)理公司內部(bu)的技術培訓工(gong)作;
7 負責組織及帶領公司內(nei)部員工研究(jiu)與項目相關的新技(ji)術。
8 管理技(ji)術支(zhi)撐團(tuan)隊并給項(xiang)目、產品開(kai)發實施(shi)團(tuan)隊提供(gong)技(ji)術保障(zhang)。
9 理解系統的(de)業務需求,制(zhi)定系統的(de)整體框架(包括(kuo):技術(shu)框架和業務框架)
10 對系(xi)(xi)統框架相關技術和業務進行培訓,指導開(kai)發(fa)人員開(kai)發(fa)。并解決系(xi)(xi)統開(kai)發(fa)、運行中出現的各種問題。系(xi)(xi)統架構師的目(mu)的:
11 對系(xi)統(tong)的重(zhong)用、擴展、安全、性能、伸縮性、簡(jian)潔等做系(xi)統(tong)級的把握。
————系統架構師(shi)的(de)(de)(de)工作在(zai)于針對不(bu)(bu)同的(de)(de)(de)情(qing)況篩選出最優(you)的(de)(de)(de)技(ji)術解決方案(an),而不(bu)(bu)是(shi)(shi)沉在(zai)具(ju)體實現細節上。此外系統架構師(shi)是(shi)(shi)不(bu)(bu)可(ke)培養(yang)的(de)(de)(de),好的(de)(de)(de)系統架構師(shi)也許不(bu)(bu)是(shi)(shi)一(yi)個(ge)優(you)秀的(de)(de)(de)程序員,但是(shi)(shi)不(bu)(bu)能不(bu)(bu)懂技(ji)術之間的(de)(de)(de)差別,技(ji)術的(de)(de)(de)發展(zhan)趨勢,采用(yong)(yong)該技(ji)術的(de)(de)(de)當前成本和后繼成本,該技(ji)術與具(ju)體應用(yong)(yong)的(de)(de)(de)偶合(he)程度(du),自己可(ke)以調配的(de)(de)(de)資源狀況,研發中可(ke)能會(hui)遇到的(de)(de)(de)風險(xian),如何回避風險(xian)。這些才是(shi)(shi)架構師(shi)需要考(kao)慮的(de)(de)(de)主要內(nei)容。
第一(yi)種是(shi)基(ji)礎架(jia)構的設(she)計規劃,例如:OS,硬(ying)件,網絡,各(ge)種應(ying)用服務器等等。
第二種是軟(ruan)件開(kai)發(fa)(fa)設(she)計的(de)架構(gou)師,他們負(fu)責規劃程序的(de)運行模(mo)式,層次結構(gou),調(diao)用關系(xi),規劃具體的(de)實(shi)現(xian)技(ji)術類型,甚至配合整個(ge)團隊做好軟(ruan)件開(kai)發(fa)(fa)中的(de)項目管(guan)理。
系統構架師是最近在國內外迅速成長并發展良好的一個職位,它的重要性及給 T業所帶來的影響是不言而喻的。在我國雖然還存在一定的爭論性、不可預測性、不理解性,不確定性,但它確實是時代發展的需要。IT業各公司為了讓他們現有的IT系統實現更大的價值,紛紛進行了重大的技術變革,這樣(yang)一(yi)來,對(dui)高水平的(de)(de)架構(gou)師(shi)的(de)(de)需求激增。對(dui)負責架構(gou)的(de)(de)管理人員(yuan)的(de)(de)需求不斷增大,其增長(chang)速度比對(dui)CIO的(de)(de)需求還要快,這是因為,架構(gou)師(shi)會(hui)給一(yi)個組織帶來大量(liang)專門(men)技術。公司需要一(yi)些在(zai)架構(gou)方面有真才實學,而且(qie)學得深且(qie)廣的(de)(de)人才。
在比爾(er)·蓋茨的眾多稱(cheng)謂中,據(ju)說(shuo)他(ta)更偏愛“首(shou)席軟(ruan)件(jian)架構(gou)師(shi)(shi)”。同(tong)樣,在網易創始人丁磊(lei)名字前(qian),也有“首(shou)席架構(gou)師(shi)(shi)”這樣的稱(cheng)謂。由(you)此(ci)可(ke)見,對(dui)于企業來說(shuo),架構(gou)師(shi)(shi)就是(shi)靈魂的創造者。
系統架(jia)構(gou)師該(gai)怎么來實現其“架(jia)構(gou)”企業的職能呢?尤其在設計企業IT策略時(shi),該(gai)怎樣體現架(jia)構(gou)師的價(jia)值(zhi)?這(zhe)里以實例(li)說明:
摩(mo)托(tuo)羅(luo)(luo)拉(la)的(de)(de)(de)(de)副總裁 Toby Redshaw 說,架(jia)(jia)(jia)構(gou)(gou)師(shi)(shi)是“IT策略(lve)中(zhong)的(de)(de)(de)(de)中(zhong)樞”,而(er)且這(zhe)(zhe)(zhe)一角色(se)對(dui)(dui)公(gong)司(si)的(de)(de)(de)(de)影響確實非(fei)(fei)常(chang)大(da)(da)。當 Toby Reshaw在2001年(nian)進入摩(mo)托(tuo)羅(luo)(luo)拉(la)并擔任其策略(lve)暨架(jia)(jia)(jia)構(gou)(gou)副總裁時,他儼然(ran)(ran)一位購房者對(dui)(dui)一套(tao)搖搖欲墜的(de)(de)(de)(de)公(gong)寓進行估價一樣(yang)。他并不是僅(jin)僅(jin)只作(zuo)(zuo)些表(biao)面(mian)上的(de)(de)(de)(de)修改,而(er)是擬(ni)定(ding)了(le)一個(ge)(ge)(ge)重(zhong)建(jian)(jian)摩(mo)托(tuo)羅(luo)(luo)拉(la)整(zheng)個(ge)(ge)(ge)基礎結(jie)構(gou)(gou)的(de)(de)(de)(de)計劃,這(zhe)(zhe)(zhe)個(ge)(ge)(ge)計劃可(ke)以(yi)徹(che)底修整(zheng)公(gong)司(si)的(de)(de)(de)(de)基礎建(jian)(jian)設(she),就像一個(ge)(ge)(ge)建(jian)(jian)筑(zhu)(zhu)師(shi)(shi)設(she)計一幢房子(zi)一樣(yang),Redshaw擬(ni)出(chu)了(le)一張技術(shu)構(gou)(gou)架(jia)(jia)(jia)藍圖,一座技術(shu)性(xing)的(de)(de)(de)(de)建(jian)(jian)筑(zhu)(zhu),以(yi)便使(shi)被(bei)(bei)他稱(cheng)作(zuo)(zuo)“如(ru)意大(da)(da)利面(mian)條般錯亂(luan)的(de)(de)(de)(de)應(ying)用程序(xu)(xu),機器和(he)管線”那些東西變得井然(ran)(ran)有序(xu)(xu)。他說,只要(yao)選擇了(le)正確的(de)(de)(de)(de)架(jia)(jia)(jia)構(gou)(gou)策略(lve)并用對(dui)(dui)了(le)人,摩(mo)托(tuo)就可(ke)以(yi)用比以(yi)前更(geng)快的(de)(de)(de)(de)速(su)度(du)生產出(chu)大(da)(da)量應(ying)用軟件,而(er)且可(ke)以(yi)減少維持重(zhong)疊(die)系統(tong)的(de)(de)(de)(de)費(fei)用。Redshaw 說:“如(ru)果(guo)你連建(jian)(jian)筑(zhu)(zhu)架(jia)(jia)(jia)構(gou)(gou)都(dou)搞不好,就算你的(de)(de)(de)(de)石(shi)匠(jiang)技術(shu)再高(gao)明,又(you)有什么用?架(jia)(jia)(jia)構(gou)(gou)師(shi)(shi)IT策略(lve)中(zhong)的(de)(de)(de)(de)中(zhong)樞。”像Redshaw這(zhe)(zhe)(zhe)樣(yang)的(de)(de)(de)(de)系統(tong)架(jia)(jia)(jia)構(gou)(gou)師(shi)(shi)們(men)(men)在企業(ye)內部(bu)的(de)(de)(de)(de)影響力非(fei)(fei)常(chang)大(da)(da)。很久以(yi)來(lai),雖然(ran)(ran)他們(men)(men)一直在信息技術(shu)部(bu)門(men)擔任重(zhong)要(yao)職務,但是他們(men)(men)經常(chang)受(shou)委(wei)托(tuo)提供全面(mian)概況分析,并提出(chu)一些關于如(ru)何遵照標(biao)準執行這(zhe)(zhe)(zhe)些任務的(de)(de)(de)(de)建(jian)(jian)議,而(er)這(zhe)(zhe)(zhe)些對(dui)(dui)日常(chang)運(yun)作(zuo)(zuo)的(de)(de)(de)(de)影響極其有限(xian)。隨著各公(gong)司(si)都(dou)在尋找重(zhong)建(jian)(jian)他們(men)(men)的(de)(de)(de)(de)IT系統(tong),使(shi)其更(geng)能(neng)有效節省成本(ben),更(geng)靈活(huo)的(de)(de)(de)(de)方法(fa),架(jia)(jia)(jia)構(gou)(gou)師(shi)(shi)愈來(lai)愈被(bei)(bei)看作(zuo)(zuo)是至關重(zhong)要(yao)的(de)(de)(de)(de)因素(su)。
一個定(ding)(ding)義明確的(de)(de)架構的(de)(de)目(mu)標在于(yu)降低運(yun)(yun)行復雜(za)的(de)(de)運(yun)(yun)算系統的(de)(de)費用。一個公司(si)可(ke)以采用一種特定(ding)(ding)的(de)(de)數據(ju)庫配(pei)置,如微軟(ruan)的(de)(de)數據(ju)庫,進(jin)而將系統標準化,而不需(xu)要讓公司(si)的(de)(de)每個部門(men)安裝(zhuang)它(ta)們自(zi)己所(suo)需(xu)要的(de)(de)數據(ju)庫服務器。
Express的(de)(de)(de)(de)技(ji)術架構(gou)副總裁(cai)Andy Miller說:“如果(guo)你(ni)沒有(you)一項(xiang)強(qiang)有(you)力(li)的(de)(de)(de)(de)架構(gou)策略(lve),人人各行其是,最后以得到六種服務器和軟(ruan)件(jian)平臺而(er)告(gao)終,你(ni)的(de)(de)(de)(de)系統(tong)變成了大雜燴,而(er)那將使你(ni)的(de)(de)(de)(de)費用激增。”把架構(gou)師(shi)(shi)獨立出來有(you)很多好(hao)處,比(bi)如系統(tong)的(de)(de)(de)(de)整體把握,質(zhi)量上的(de)(de)(de)(de)保(bao)障(zhang),技(ji)術上的(de)(de)(de)(de)先(xian)進(jin)性,架構(gou)的(de)(de)(de)(de)靈活(huo)性,高效(xiao)(xiao)(xiao)性,還可有(you)效(xiao)(xiao)(xiao)地降低成本。試想,1個月薪1w的(de)(de)(de)(de)架構(gou)師(shi)(shi)+10個月薪5k的(de)(de)(de)(de)工(gong)程(cheng)師(shi)(shi),肯(ken)定比(bi)11個月薪6k的(de)(de)(de)(de)高級工(gong)程(cheng)師(shi)(shi)效(xiao)(xiao)(xiao)果(guo)要好(hao)。一般來說,級別越高的(de)(de)(de)(de)架構(gou)師(shi)(shi),經驗更豐富,爭相聘請的(de)(de)(de)(de)人也多,他們也是與公司(si)全部的(de)(de)(de)(de)IT策略(lve)密切相關的(de)(de)(de)(de)專業(ye)人員(yuan)。
作為(wei)軟件(jian)開(kai)發(fa)的(de)(de)設(she)(she)計(ji)(ji)架構師(shi),那么(me)必須(xu)擁有(you)一定(ding)的(de)(de)編程(cheng)(cheng)(cheng)技能,同時有(you)高超的(de)(de)學習新(xin)的(de)(de)架構設(she)(she)計(ji)(ji)、程(cheng)(cheng)(cheng)序設(she)(she)計(ji)(ji)技能。另外,我覺得作為(wei)軟件(jian)架構師(shi),還必須(xu)了解一定(ding)的(de)(de)硬件(jian)、網絡(luo)、服(fu)務器的(de)(de)基本知識。要不然,你(ni)都(dou)不知道有(you)些什么(me)材(cai)料(liao)可以用,你(ni)怎(zen)么(me)去(qu)(qu)根據實際情況去(qu)(qu)規劃你(ni)的(de)(de)軟件(jian)架構呢?忽視程(cheng)(cheng)(cheng)序設(she)(she)計(ji)(ji)能力的(de)(de)持續跟新(xin),是永遠不能夠成為(wei)一個成功的(de)(de)系統架構師(shi)。
一般來講,系統(tong)架構師應該擁有以下(xia)幾方面(mian)的能力:
1:具備(bei)8年以上(shang)軟件行業工作經驗(yan);
2:具(ju)備4年(nian)以上C/S或B/S體(ti)系(xi)結(jie)構軟件產(chan)品開發(fa)及架構和設(she)計(ji)經驗;
3:具備3年以上的代碼(ma)編寫工作經驗;
4:具備豐富的大中(zhong)型開發項目的總體規(gui)劃、方(fang)案設計及技術隊(dui)伍管理(li)經驗;
5:對(dui)相關的(de)技術標準有深刻的(de)認識,對(dui)軟件工程標準規范有良好的(de)把握;
6:對.Net/JAVA技(ji)術及(ji)整(zheng)個(ge)解(jie)決方案有深(shen)刻的理解(jie)及(ji)熟練的應用(yong),并(bing)且精通(tong)WebService/J2EE架構和(he)設(she)計(ji)模式,并(bing)在此基礎上設(she)計(ji)產品框架;
7:具有面(mian)向對象分析、設(she)計(ji)、開(kai)發能力(li)(OOA、OOD、OOP),精(jing)通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner等工(gong)具進(jin)行(xing)設(she)計(ji)開(kai)發;
8:精(jing)通大型(xing)數據庫如Oracle、Sql Server等的開發;
9:對計算(suan)機系(xi)(xi)統、網絡和安全、應用系(xi)(xi)統架構等有(you)全面的認識,熟悉項目管理理論,并(bing)有(you)實(shi)踐基(ji)礎;
10:在應用系統開發(fa)平臺和(he)項目管理上有深厚的基礎,有大中型應用系統開發(fa)和(he)實施的成功案例;
11:良(liang)好的團隊意(yi)識(shi)和協作精神,有較強的內外溝通能力(li)。
系統構架師與(yu)產品經理的關系及區別
產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li)通(tong)常(chang)是(shi)指負責(ze)產(chan)(chan)(chan)(chan)品(pin)(pin)設計的“專人”。一(yi)(yi)個優(you)秀的理(li)(li)(li)想(xiang)的產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li),應同時(shi)具(ju)備較(jiao)(jiao)高(gao)的商(shang)(shang)業(ye)(ye)素質和較(jiao)(jiao)強的技(ji)術背景(jing)。產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li)要(yao)有(you)深(shen)厚的領域(yu)(yu)經(jing)驗,也就是(shi)說(shuo),對該軟件系(xi)統要(yao)應用到的業(ye)(ye)務領域(yu)(yu)非常(chang)之(zhi)熟悉(xi)。比(bi)(bi)如(ru),開(kai)(kai)發(fa)房(fang)地產(chan)(chan)(chan)(chan)銷(xiao)(xiao)售(shou)軟件的產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li),應該對房(fang)地產(chan)(chan)(chan)(chan)公(gong)司的標準銷(xiao)(xiao)售(shou)流(liu)程了如(ru)指掌,甚(shen)至比(bi)(bi)大多(duo)數銷(xiao)(xiao)售(shou)人員還(huan)要(yao)清楚(chu)。如(ru)果(guo)開(kai)(kai)發(fa)的是(shi)通(tong)用產(chan)(chan)(chan)(chan)品(pin)(pin),他/她還(huan)具(ju)備對市(shi)場、潛在客(ke)戶(hu)需求的深(shen)刻洞察力。那(nei)么,系(xi)統架(jia)構師(shi)(shi)與產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li)有(you)什么不(bu)同呢(ni)?我們不(bu)應該把(ba)二(er)(er)者(zhe)混為一(yi)(yi)談,這是(shi)不(bu)少(shao)論述(shu)和實踐(jian)常(chang)犯的錯誤。我看來,如(ru)果(guo)把(ba)開(kai)(kai)發(fa)軟件比(bi)(bi)作攝制電影,產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li)之(zhi)于(yu)系(xi)統架(jia)構師(shi)(shi),就正像編(bian)劇(ju)之(zhi)于(yu)導(dao)演。產(chan)(chan)(chan)(chan)品(pin)(pin)經(jing)理(li)(li)(li)雖(sui)然要(yao)有(you)一(yi)(yi)定技(ji)術背景(jing),但仍(reng)應屬于(yu)“商(shang)(shang)業(ye)(ye)人士(business people)”,而系(xi)統架(jia)構師(shi)(shi)則(ze)肯定是(shi)一(yi)(yi)個技(ji)術專家。二(er)(er)者(zhe)看待問題的立(li)場、角度(du)和出發(fa)點(dian)完全不(bu)同。
系(xi)統構(gou)架師與項目(mu)經(jing)理的關系(xi)及區(qu)別
軟件項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)是(shi)(shi)指對(dui)項(xiang)(xiang)目(mu)控制/管(guan)理(li)(li)(li)(li),關(guan)注項(xiang)(xiang)目(mu)本身的(de)(de)(de)(de)(de)(de)(de)(de)進(jin)度、質(zhi)量,分配、調(diao)(diao)動、協調(diao)(diao)、管(guan)理(li)(li)(li)(li)好(hao)(hao)人(ren)(ren)(ren)(ren)、財(cai)、物等資(zi)(zi)源(yuan)的(de)(de)(de)(de)(de)(de)(de)(de)負責人(ren)(ren)(ren)(ren)。對(dui)于(yu)軟件項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)來講,包(bao)括(kuo)項(xiang)(xiang)目(mu)計(ji)劃、進(jin)度跟(gen)蹤/監(jian)控、質(zhi)量保證、配置/發(fa)布(bu)/版本/變更(geng)管(guan)理(li)(li)(li)(li)、人(ren)(ren)(ren)(ren)員(yuan)績效評估等方面(mian)。優秀的(de)(de)(de)(de)(de)(de)(de)(de)項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)需要的(de)(de)(de)(de)(de)(de)(de)(de)素(su)質(zhi),并不(bu)僅在于(yu)會使用幾種(zhong)軟件或是(shi)(shi)了(le)解(jie)(jie)若干(gan)抽象的(de)(de)(de)(de)(de)(de)(de)(de)方法論(lun)原(yuan)則(ze),更(geng)重要的(de)(de)(de)(de)(de)(de)(de)(de)在于(yu)從大量項(xiang)(xiang)目(mu)實踐中(zhong)(zhong)獲得的(de)(de)(de)(de)(de)(de)(de)(de)寶貴經(jing)(jing)(jing)驗(yan),以及交流、協調(diao)(diao)、激勵(li)的(de)(de)(de)(de)(de)(de)(de)(de)能(neng)力,甚至(zhi)還應(ying)具備某種(zhong)個(ge)性魅力或領(ling)袖(xiu)氣質(zhi)(Charisma)。由此可見(jian),項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)和(he)(he)系(xi)統(tong)架(jia)(jia)構(gou)師(shi)在職責上(shang)(shang)(shang)有(you)(you)(you)很大差(cha)異。混同這兩個(ge)角色,往往也會導致低效、無(wu)序的(de)(de)(de)(de)(de)(de)(de)(de)開(kai)發(fa)。特別(bie)是(shi)(shi),從性格因素(su)上(shang)(shang)(shang)講,單純(chun)的(de)(de)(de)(de)(de)(de)(de)(de)技(ji)術人(ren)(ren)(ren)(ren)員(yuan)傾向于(yu)忽視“人(ren)(ren)(ren)(ren)”的(de)(de)(de)(de)(de)(de)(de)(de)因素(su),而(er)這正(zheng)是(shi)(shi)管(guan)理(li)(li)(li)(li)活動的(de)(de)(de)(de)(de)(de)(de)(de)一(yi)個(ge)主要方面(mian)。另(ling)(ling)外,就(jiu)像戰爭中(zhong)(zhong)的(de)(de)(de)(de)(de)(de)(de)(de)空(kong)軍掩護(Air Cover)一(yi)樣,專(zhuan)職的(de)(de)(de)(de)(de)(de)(de)(de)項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)能(neng)夠(gou)應(ying)付開(kai)發(fa)過程中(zhong)(zhong)大量的(de)(de)(de)(de)(de)(de)(de)(de)偶發(fa)事件和(he)(he)雜務(wu),對(dui)于(yu)一(yi)個(ge)規模稍大的(de)(de)(de)(de)(de)(de)(de)(de)項(xiang)(xiang)目(mu),這些雜務(wu)本身就(jiu)能(neng)占用一(yi)個(ge)全(quan)職工作者(zhe)的(de)(de)(de)(de)(de)(de)(de)(de)幾乎全(quan)部(bu)時間(jian)。在一(yi)個(ge)項(xiang)(xiang)目(mu)中(zhong)(zhong),推動項(xiang)(xiang)目(mu)發(fa)展的(de)(de)(de)(de)(de)(de)(de)(de)是(shi)(shi)系(xi)統(tong)構(gou)架(jia)(jia)師(shi),而(er)不(bu)是(shi)(shi)項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)。項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)的(de)(de)(de)(de)(de)(de)(de)(de)職責只是(shi)(shi)配合系(xi)統(tong)構(gou)架(jia)(jia)師(shi),提供各個(ge)方面(mian)的(de)(de)(de)(de)(de)(de)(de)(de)支持(chi)。主要職責是(shi)(shi)與內外部(bu)溝(gou)通(tong)和(he)(he)管(guan)理(li)(li)(li)(li)資(zi)(zi)源(yuan)(包(bao)括(kuo)人(ren)(ren)(ren)(ren))。系(xi)統(tong)構(gou)架(jia)(jia)師(shi)提出系(xi)統(tong)的(de)(de)(de)(de)(de)(de)(de)(de)總體構(gou)架(jia)(jia),給出開(kai)發(fa)指導。一(yi)個(ge)項(xiang)(xiang)目(mu)中(zhong)(zhong),項(xiang)(xiang)目(mu)經(jing)(jing)(jing)理(li)(li)(li)(li)的(de)(de)(de)(de)(de)(de)(de)(de)角色什么?如果(guo)他即使管(guan)理(li)(li)(li)(li)人(ren)(ren)(ren)(ren)員(yuan)又(you)是(shi)(shi)設計(ji)人(ren)(ren)(ren)(ren)員(yuan),則(ze)必須比別(bie)人(ren)(ren)(ren)(ren)強,能(neng)夠(gou)有(you)(you)(you)讓別(bie)人(ren)(ren)(ren)(ren)服的(de)(de)(de)(de)(de)(de)(de)(de)東(dong)西。如果(guo)他只是(shi)(shi)項(xiang)(xiang)目(mu)管(guan)理(li)(li)(li)(li)人(ren)(ren)(ren)(ren)員(yuan),系(xi)統(tong)構(gou)架(jia)(jia)師(shi)有(you)(you)(you)專(zhuan)門人(ren)(ren)(ren)(ren)員(yuan),就(jiu)可以不(bu)用精通(tong)或者(zhe)說了(le)解(jie)(jie)it各個(ge)方面(mian)的(de)(de)(de)(de)(de)(de)(de)(de)知識,如果(guo)了(le)解(jie)(jie)更(geng)好(hao)(hao)。另(ling)(ling)外,如果(guo)在一(yi)個(ge)項(xiang)(xiang)目(mu)沒有(you)(you)(you)人(ren)(ren)(ren)(ren)在技(ji)術構(gou)架(jia)(jia)上(shang)(shang)(shang)和(he)(he)開(kai)發(fa)指導上(shang)(shang)(shang)負全(quan)部(bu)責任,而(er)是(shi)(shi)每個(ge)人(ren)(ren)(ren)(ren)都負責一(yi)快的(de)(de)(de)(de)(de)(de)(de)(de)架(jia)(jia)構(gou)、分析、設計(ji)、代碼和(he)(he)實施等,最后肯定會失去管(guan)理(li)(li)(li)(li)。
系統構架(jia)師與系統分析師的(de)關系及區別
系(xi)(xi)統(tong)分(fen)析(xi)師(System analyst)是(shi)指對(dui)系(xi)(xi)統(tong)開發(fa)中(zhong)進(jin)行業(ye)(ye)(ye)務需求分(fen)析(xi)、系(xi)(xi)統(tong)需求分(fen)析(xi)、可(ke)行性分(fen)析(xi)、業(ye)(ye)(ye)務建模和(he)指導(dao)項目(mu)開發(fa)的(de)人(ren)。系(xi)(xi)統(tong)分(fen)析(xi)師所面臨的(de)往往是(shi)有(you)許多不(bu)確定(ding)性的(de)事件,需要對(dui)這些不(bu)確定(ding)性的(de)事件進(jin)行分(fen)析(xi)、總結,使之得出一個(ge)相對(dui)可(ke)靠的(de)確定(ding)性結論(lun)或(huo)(huo)實(shi)施方(fang)案(an)模型。一般意思上講(jiang),系(xi)(xi)統(tong)分(fen)析(xi)師的(de)水平(ping)將(jiang)影響系(xi)(xi)統(tong)開發(fa)的(de)質量,甚至成(cheng)敗。但在(zai)一個(ge)完善的(de)系(xi)(xi)統(tong)開發(fa)隊(dui)伍(wu)中(zhong),還需要有(you)業(ye)(ye)(ye)務專家,技術專家和(he)其他輔助(zhu)人(ren)員。對(dui)于大型企業(ye)(ye)(ye)或(huo)(huo)者項目(mu),如果一人(ren)承擔多個(ge)角色,往往容易發(fa)生顧此失彼的(de)現象。
系(xi)(xi)統(tong)(tong)分(fen)(fen)析師(shi)(shi)(shi)(shi)對(dui)(dui)業(ye)務系(xi)(xi)統(tong)(tong)進行分(fen)(fen)析、建模(mo),他的(de)(de)任務、目標是明確的(de)(de)。系(xi)(xi)統(tong)(tong)架(jia)(jia)構(gou)師(shi)(shi)(shi)(shi)協(xie)同(tong)(tong)系(xi)(xi)統(tong)(tong)分(fen)(fen)析師(shi)(shi)(shi)(shi)的(de)(de)工作,建議系(xi)(xi)統(tong)(tong)分(fen)(fen)析師(shi)(shi)(shi)(shi)按什(shen)么標準,什(shen)么工具,什(shen)么模(mo)式,什(shen)么技(ji)(ji)術去思考系(xi)(xi)統(tong)(tong)。同(tong)(tong)時,系(xi)(xi)統(tong)(tong)架(jia)(jia)構(gou)師(shi)(shi)(shi)(shi)應(ying)該對(dui)(dui)系(xi)(xi)統(tong)(tong)分(fen)(fen)析師(shi)(shi)(shi)(shi)所提(ti)出(chu)的(de)(de)問題,碰到的(de)(de)難題及時地(di)提(ti)出(chu)解(jie)決的(de)(de)方法。系(xi)(xi)統(tong)(tong)架(jia)(jia)構(gou)師(shi)(shi)(shi)(shi)在項目中(zhong)擔(dan)任技(ji)(ji)術骨干的(de)(de)角色,負(fu)責技(ji)(ji)術實施中(zhong)的(de)(de)重點技(ji)(ji)術問題攻關。同(tong)(tong)時,又是系(xi)(xi)統(tong)(tong)分(fen)(fen)析師(shi)(shi)(shi)(shi)的(de)(de)技(ji)(ji)術顧(gu)問,為(wei)整個項目的(de)(de)技(ji)(ji)術框架(jia)(jia)與(yu)技(ji)(ji)術細節的(de)(de)展開和落實提(ti)供強有力(li)的(de)(de)技(ji)(ji)術保障。
優秀的(de)(de)(de)系(xi)統(tong)架(jia)構師(shi)是保(bao)證(zheng)軟件系(xi)統(tong)強大生(sheng)命力的(de)(de)(de)核心(xin)人物。專業(ye)架(jia)構師(shi)能夠幫(bang)助公司全(quan)面(mian)研究現(xian)有架(jia)構和(he)設(she)計模式(shi)、評估系(xi)統(tong)設(she)計的(de)(de)(de)優缺點和(he)可(ke)能存在的(de)(de)(de)風險(xian),通(tong)過一系(xi)列的(de)(de)(de)專題(ti)指導和(he)具體(ti)案例幫(bang)助公司掌握先(xian)進的(de)(de)(de)、成熟的(de)(de)(de)設(she)計模式(shi),簡化(hua)復雜(za)的(de)(de)(de)業(ye)務邏輯和(he)需求(qiu),確定(ding)(ding)系(xi)統(tong)最適合法人方案。在必要的(de)(de)(de)情況下(xia),還(huan)可(ke)就特定(ding)(ding)領域或課題(ti),為開發人員提供定(ding)(ding)制指導。通(tong)過上面(mian)的(de)(de)(de)介紹,我們(men)對系(xi)統(tong)構架(jia)師(shi)有了的(de)(de)(de)較深(shen)刻的(de)(de)(de)認識,我們(men)明白了系(xi)統(tong)構架(jia)師(shi)的(de)(de)(de)地位,作用,工(gong)作職(zhi)責及任職(zhi)條件,同時還(huan)區別出與其他(ta)角色的(de)(de)(de)不同,那么如何(he)評估系(xi)統(tong)構架(jia)師(shi)的(de)(de)(de)工(gong)作成績,
如何識(shi)別一個(ge)合格(ge)的(de)優秀的(de)系統構(gou)架師是不難的(de)。
具體(ti)來講,我們可以(yi)(yi)通(tong)過以(yi)(yi)下幾方(fang)面來評估(gu)系統構架師的(de)工作成績:
1:系統(tong)構架師是否是某一(yi)技術領域的專(zhuan)家;
2:系統構架師能(neng)否指(zhi)導分析員的設計工作,發現(xian)并指(zhi)出(chu)設計存在(zai)的問題并提出(chu)解決方(fang)法,評審他們(men)的工作;
3:系(xi)統(tong)構架師(shi)能否(fou)指(zhi)導軟件工(gong)(gong)程師(shi)進(jin)行開發工(gong)(gong)作,發現并(bing)指(zhi)出編碼存在的問(wen)題(ti)并(bing)提出解決(jue)方法(fa),評審(shen)他們的工(gong)(gong)作;
4:系統(tong)構架師能否協(xie)助好項目經(jing)理制定項目計(ji)劃和控制項目進度;
5:系統(tong)構架師能否(fou)及時有效地解決(jue)設計(ji)、開發人員所提出的問(wen)題(ti),解決(jue)技術上的難題(ti);
6:系統(tong)構架(jia)師能否制(zhi)訂(ding)并(bing)規范(fan)系統(tong)設計和開發文(wen)檔、工具、模型;能否讓其他人員容(rong)易理解;
7:系統構架師能否經常(chang)組(zu)織并帶領公(gong)司內部員工研究、學習(xi)與項目相關的新(xin)技術;
8:系統構架師能否(fou)組織(zhi)和管理好(hao)公司內部的技術培(pei)訓工(gong)(gong)作,技術研究(jiu)和公關工(gong)(gong)作;
9:系(xi)統構架師(shi)是(shi)否有良好的團隊意識(shi)和協作精神,有較強(qiang)的內(nei)外溝通(tong)能(neng)力;
10:系統構架師是否(fou)能管理好技術支撐團隊并給項目、產(chan)品開發實施團隊提供技術保(bao)障;
11:系統構(gou)(gou)架(jia)師所設(she)計的系統架(jia)構(gou)(gou)是否(fou)合理(li),技術是否(fou)先進,能否(fou)滿足客(ke)戶的要求;
12:系(xi)統(tong)構架是否有(you)擴展性,安全性,能否經受壓力測試,網絡流(liu)量在超用戶數(shu)下如何控制(zhi);
13:系統邊界如何(he)處理(li),瓶頸(jing)問題如何(he)解決(jue)等;
14:系統設(she)計前期、中(zhong)期、后期所要解決(jue)的問題,是否有(you)階(jie)段(duan)性(xing),里程碑的標識;
15:是否有分析、識(shi)別(bie)并盡可能地回避風(feng)(feng)險,降低(di)風(feng)(feng)險所引(yin)發問題(ti)成本(ben)的能力;
16:能否給公司降(jiang)低開發(fa)成(cheng)本,提(ti)高(gao)效率(lv);
系統(tong)架構(gou)(gou)師的一般月薪范圍(wei)在(zai)20000-100000美元(yuan)左右。系統(tong)架構(gou)(gou)師是軟件(jian)(jian)項目的總(zong)(zong)設(she)計師,是軟件(jian)(jian)企業的新產品(pin)、新技(ji)術體系的構(gou)(gou)建(jian)者(zhe),是軟件(jian)(jian)開發(fa)(fa)中(zhong)急需的高層(ceng)次(ci)技(ji)術人才。其(qi)是由系統(tong)開發(fa)(fa)工程師發(fa)(fa)展而來(lai),可以向研(yan)發(fa)(fa)總(zong)(zong)監,高級技(ji)術總(zong)(zong)監等高層(ceng)次(ci)的方向發(fa)(fa)展。