軟件架構(gòu)師 - 新興職業(yè)
軟件架構(gòu)師是軟件行業(yè)中一種新興職業(yè),工作職責(zé)是在一個(gè)軟件項(xiàng)目開發(fā)過程中,將客戶的需求轉(zhuǎn)換為規(guī)范的開發(fā)計(jì)劃及文本,并制定這個(gè)項(xiàng)目的總體架構(gòu),指導(dǎo)整個(gè)開發(fā)團(tuán)隊(duì)完成這個(gè)計(jì)劃。
基本內(nèi)容
優(yōu)勢
根據(jù)信息產(chǎn)業(yè)部的有關(guān)文件,高端人才匱乏是中國軟件產(chǎn)業(yè)當(dāng)前發(fā)展最致命的阻礙因素之一,多數(shù)企業(yè)的高端職位一直空缺但招不到合適的人才。
高端職位的空缺,導(dǎo)致企業(yè)技術(shù)層次一直在低水平徘徊。而眾多低水平軟件開發(fā)人員讓中國大多數(shù)軟件企業(yè)陷于嚴(yán)重的低層次重復(fù)開發(fā)狀態(tài),無法形成自己的產(chǎn)品研發(fā)和技術(shù)優(yōu)勢,導(dǎo)致國內(nèi)90%以上的軟件企業(yè)中的開發(fā)人員不到50人,很難發(fā)展壯大。
根據(jù)“第三屆中國軟件工程大會(huì)”的報(bào)告,在中國,未來五年,高端軟件人才需求缺口達(dá)20萬。而每年自動(dòng)成長起來的軟件架構(gòu)師只有幾百人,可見市場需求的巨大。
在如此形勢下,怎樣抓住機(jī)遇,快速適應(yīng)新的形勢變化,快速提升職場競爭力,實(shí)現(xiàn)個(gè)人價(jià)值,是需要認(rèn)真思考的事情。
能力要求
在技術(shù)全面、成熟練達(dá)、洞察力強(qiáng)、經(jīng)驗(yàn)豐富,具備在缺乏完整信息、眾多問題交織一團(tuán)、模糊和矛盾的情況下,軟件架構(gòu)師能迅速抓住問題要害,并做出合理的關(guān)鍵決定的能力、具備戰(zhàn)略性和前瞻性思維能力,善于把握全局,能夠在更高抽象級(jí)別上進(jìn)行思考。主要包括如下:
⒈對(duì)項(xiàng)目開發(fā)涉及的所有問題領(lǐng)域都有經(jīng)驗(yàn),包括徹底地理解項(xiàng)目需求,開展分析設(shè)計(jì)之類軟件工程活動(dòng)等;
⒉具備領(lǐng)導(dǎo)素質(zhì),以在各小組之間推進(jìn)技術(shù)工作,并在項(xiàng)目壓力下做出牢靠的關(guān)鍵決策;
⒊擁有優(yōu)秀的溝通能力,用以進(jìn)行說服、鼓勵(lì)和指導(dǎo)等活動(dòng),并贏得項(xiàng)目成員的信任;
⒋以目標(biāo)導(dǎo)向和主動(dòng)的方式來不帶任何感情色彩地關(guān)注項(xiàng)目結(jié)果,構(gòu)架師應(yīng)當(dāng)是項(xiàng)目背后的技術(shù)推動(dòng)力,而非構(gòu)想者或夢(mèng)想家(追求完美);
⒌精通構(gòu)架設(shè)計(jì)的理論、實(shí)踐和工具,并掌握多種參考構(gòu)架、主要的可重用構(gòu)架機(jī)制和模式(例如J2EE架構(gòu)等);
⒍具備系統(tǒng)設(shè)計(jì)員的所有技能,但涉及面更廣、抽象級(jí)別更高;活動(dòng)確定用例或需求的優(yōu)先級(jí)、進(jìn)行構(gòu)架分析、創(chuàng)建構(gòu)架的概念驗(yàn)證原型、評(píng)估構(gòu)架的概念驗(yàn)證原型的可行性、組織系統(tǒng)實(shí)施模型、描述系統(tǒng)分布結(jié)構(gòu)、描述運(yùn)行時(shí)刻構(gòu)架、確定設(shè)計(jì)機(jī)制、確定設(shè)計(jì)元素、合并已有設(shè)計(jì)元素、構(gòu)架文檔、參考構(gòu)架、分析模型、設(shè)計(jì)模型、實(shí)施模型、部署模型、構(gòu)架概念驗(yàn)證原型、接口、事件、信號(hào)與協(xié)議等。
主要任務(wù)
架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫,而是從事更高層次的開發(fā)構(gòu)架工作。他必須對(duì)開發(fā)技術(shù)非常了解,并且需要有良好的組織管理能力??梢赃@樣說,一個(gè)架構(gòu)師工作的好壞決定了整個(gè)軟件開發(fā)項(xiàng)目的成敗。
⒈領(lǐng)導(dǎo)與協(xié)調(diào)整個(gè)項(xiàng)目中的技術(shù)活動(dòng)(分析、設(shè)計(jì)和實(shí)施等)
⒉推動(dòng)主要的技術(shù)決策,并最終表達(dá)為軟件構(gòu)架
⒊確定和文檔化系統(tǒng)的相對(duì)構(gòu)架而言意義重大的方面,包括系統(tǒng)的需求、設(shè)計(jì)、實(shí)施和部署等“視圖”
⒋確定設(shè)計(jì)元素的分組以及這些主要分組之間的接口
⒌為技術(shù)決策提供規(guī)則,平衡各類涉眾的不同關(guān)注點(diǎn),化解技術(shù)風(fēng)險(xiǎn),并保證相關(guān)決定被有效的傳達(dá)和貫徹
⒍理解、評(píng)價(jià)并接收系統(tǒng)需求
⒎評(píng)價(jià)和確認(rèn)軟件架構(gòu)的實(shí)現(xiàn)專業(yè)技能
技能培養(yǎng)
概述
軟件架構(gòu)師一般都是具備計(jì)算機(jī)科學(xué)或軟件工程的知識(shí),由程序員做起,然后再慢慢發(fā)展為架構(gòu)師的。在國內(nèi),很多大學(xué)目前還沒有設(shè)立軟件架構(gòu)的學(xué)位課程,雖然IT業(yè)界對(duì)設(shè)計(jì)和架構(gòu)的興趣日漸高漲,但各學(xué)校還是無法在課程中增加相應(yīng)的內(nèi)容來體現(xiàn)這一趨勢。從這個(gè)方面來說,學(xué)校教育已經(jīng)遠(yuǎn)遠(yuǎn)落后于產(chǎn)業(yè)發(fā)展。因此,促進(jìn)和發(fā)展軟件架構(gòu)學(xué)課程的任務(wù)將落在現(xiàn)在的軟件架構(gòu)師身上。目前的軟件架構(gòu)師應(yīng)該幫助各大院校建立相關(guān)課程體系,一旦教育課程建立起來,知識(shí)體將不僅通過新畢業(yè)生的工作成果來得到擴(kuò)展,同時(shí)也會(huì)從適合軟件架構(gòu)的教育研究和出版物中得到擴(kuò)展。
雖然大學(xué)要加強(qiáng)軟件架構(gòu)學(xué)課程的建設(shè),但是,軟件架構(gòu)師的成長應(yīng)該有一個(gè)實(shí)踐的教育過程,并不是簡單的學(xué)校的理論學(xué)習(xí)或者通過大型軟件公司的認(rèn)證就能成為合格的軟件架構(gòu)師。除了信息系統(tǒng)綜合知識(shí)在學(xué)校學(xué)習(xí)外,軟件架構(gòu)師的大部分知識(shí)和經(jīng)驗(yàn)將來自實(shí)際開發(fā)工作。根據(jù)軟件架構(gòu)師的任職條件,一名合格的軟件架構(gòu)師的成長應(yīng)該經(jīng)歷8年以上的軟件項(xiàng)目開發(fā)實(shí)際工作經(jīng)驗(yàn)。一般需要經(jīng)歷程序員、軟件設(shè)計(jì)師等階段,然后再發(fā)展成為軟件架構(gòu)師。
當(dāng)然,并不是每一位程序員經(jīng)過8年后都可以成長為軟件架構(gòu)師的。一個(gè)軟件工程師在充分掌握了軟件架構(gòu)師工作所必需的基本理論和技能后,如何得到和利用機(jī)會(huì)、如何利用所掌握的技能進(jìn)行應(yīng)用系統(tǒng)的合理架構(gòu)、如何不斷的抽象和總結(jié)自己的架構(gòu)模式、如何深入行業(yè)成為能夠勝任分析、架構(gòu)為一體的精英人才,這就在于機(jī)遇、個(gè)人的努力和天賦了。
就目前來看,國內(nèi)軟件架構(gòu)師的培養(yǎng)途徑主要有兩種方式,一種是大學(xué)(軟件學(xué)院)教育方式,另一種是個(gè)人自我培養(yǎng)然后再進(jìn)行相應(yīng)的培訓(xùn)和認(rèn)證。但是,不管哪種方式都有其不足之處。
軟件學(xué)院的培養(yǎng)方式能夠系統(tǒng)的學(xué)習(xí)軟件架構(gòu)師必需的知識(shí)體系,但是,軟件架構(gòu)師不是簡單的通過理論學(xué)習(xí)就能夠培養(yǎng)出來的,軟件學(xué)院的學(xué)生可能缺乏必要的設(shè)計(jì)、開發(fā)經(jīng)驗(yàn)和相關(guān)的領(lǐng)域知識(shí)。盡管軟件學(xué)院也強(qiáng)調(diào)給予學(xué)生實(shí)踐的機(jī)會(huì),但畢竟這種機(jī)會(huì)是有限的。有關(guān)“三分之一的師資來自企業(yè)”的規(guī)定,在部分軟件學(xué)院中也沒有得到真正落實(shí),導(dǎo)致傳授給學(xué)生的還是一些純理論知識(shí)。
自我培養(yǎng)方式的主要對(duì)象是具有一定年限的軟件開發(fā)和設(shè)計(jì)人員,如Microsoft、IBM、Sun等公司的軟件架構(gòu)師認(rèn)證對(duì)學(xué)員的基礎(chǔ)并沒有具體的要求,只要交納規(guī)定的費(fèi)用,然后進(jìn)行幾天的集中培訓(xùn),通過考試就發(fā)給學(xué)員證書,甚至不需要考試就直接發(fā)放證書。這些開發(fā)人員在自我培養(yǎng)的過程中不一定能夠系統(tǒng)的學(xué)習(xí)軟件架構(gòu)師的理論知識(shí),他們只具有一定的開發(fā)和設(shè)計(jì)經(jīng)驗(yàn),僅僅經(jīng)過幾天的培訓(xùn),是不太可能培養(yǎng)出合格的軟件架構(gòu)師的。而且,作為某個(gè)廠商的培訓(xùn)和認(rèn)證,其最終目的是培育自己的市場,培養(yǎng)一批忠誠的用戶,而不是為中國培養(yǎng)軟件架構(gòu)師。因此,也存在很大的問題和缺陷。
方法
針對(duì)軟件架構(gòu)師在軟件組織中的作用和其在國內(nèi)的培養(yǎng)現(xiàn)狀,有分析家認(rèn)為有必要將軟件架構(gòu)師的教育、培訓(xùn)和認(rèn)證作為發(fā)展民族軟件產(chǎn)業(yè)的一個(gè)基本決策,制定詳細(xì)的軟件架構(gòu)師培養(yǎng)方案。因此,提出以下一些關(guān)于軟件架構(gòu)師培養(yǎng)的基該方法和途徑。
⑴確定軟件架構(gòu)師在軟件組織中的職責(zé)和充當(dāng)?shù)慕巧?,確定其相應(yīng)的必須具備的知識(shí)體系,確定軟件架構(gòu)師的職業(yè)及其相關(guān)制度,制定軟件架構(gòu)師的培養(yǎng)目標(biāo)和培養(yǎng)方案。
⑵堅(jiān)持以大學(xué)教育為主(特別是各軟件學(xué)院在這方面可以大施身手),以項(xiàng)目實(shí)踐為輔的教育方針。大學(xué)可以聘請(qǐng)現(xiàn)有的軟件架構(gòu)師擔(dān)任核心課程的講師,通過學(xué)校教育,系統(tǒng)學(xué)習(xí)軟件架構(gòu)師所必需的知識(shí)體系;通過項(xiàng)目實(shí)踐使其具有初步的軟件開發(fā)和設(shè)計(jì)經(jīng)驗(yàn),逐步成長為一名合格的軟件架構(gòu)師。
⑶作位第2條的補(bǔ)充,聘請(qǐng)現(xiàn)有的軟件架構(gòu)師,個(gè)人認(rèn)為適合以講座的形式在學(xué)校開展。
⑷對(duì)國外一些大公司的軟件架構(gòu)師的培訓(xùn)和認(rèn)證予以支持,但是在認(rèn)證的過程中必須堅(jiān)持符合中國實(shí)際情況的原則。例如,在認(rèn)證考試之前對(duì)考生的知識(shí)體系進(jìn)行系統(tǒng)的測試和評(píng)估,在通過認(rèn)證后的適當(dāng)時(shí)間內(nèi)進(jìn)行重新認(rèn)證和繼續(xù)教育。
⑸建立完善的軟件架構(gòu)師教育和認(rèn)證制度,使得通過認(rèn)證的人員能夠在實(shí)際的軟件開發(fā)中成為稱職的和優(yōu)秀的軟件架構(gòu)師。并通過此制度能夠?yàn)閲遗囵B(yǎng)出更多、更優(yōu)秀的軟件架構(gòu)師,解決當(dāng)前軟件架構(gòu)師急缺問題。
資格認(rèn)證
在國外,軟件架構(gòu)師的培養(yǎng)與認(rèn)證具有嚴(yán)格的過程,明確規(guī)定了教育目標(biāo)、認(rèn)證的要求和學(xué)習(xí)課程等方面的內(nèi)容。下面,介紹三個(gè)組織的軟件架構(gòu)師認(rèn)證情況。
UC
在UC Irvine的軟件架構(gòu)師認(rèn)證計(jì)劃中,為了拿到軟件架構(gòu)師C級(jí)認(rèn)證,學(xué)員必須完成11個(gè)單元的必修課程和至少4個(gè)單元的選修課程。這些課程包括:
必修課程:軟件系統(tǒng)建模和分析概論(2個(gè)單元)、系統(tǒng)分析基礎(chǔ)(3個(gè)單元)、用戶需求的分析和文檔化(3個(gè)單元)、軟件架構(gòu)項(xiàng)目(3個(gè)單元)。
選修課程:信息系統(tǒng)項(xiàng)目管理(2個(gè)單元)、系統(tǒng)性能建模(2.5個(gè)單元)、管理業(yè)務(wù)改進(jìn)項(xiàng)目(2.5個(gè)單元)。
UC Irvine的軟件架構(gòu)師認(rèn)證要求學(xué)員具有業(yè)務(wù)系統(tǒng)建模,決定用戶需求,評(píng)價(jià)業(yè)務(wù)過程的能力,掌握項(xiàng)目管理技術(shù),能設(shè)計(jì)完善的、具有最佳可適應(yīng)性和可擴(kuò)展性的架構(gòu)。該認(rèn)證程序以一門實(shí)踐課程結(jié)束,在實(shí)踐課程中,學(xué)員從頭開始,設(shè)計(jì)一個(gè)大規(guī)模軟件解決方案的架構(gòu)。
CMU
SEI在軟件架構(gòu)師方面的認(rèn)證包括三個(gè)職位,分別是軟件架構(gòu)師、ATAM評(píng)估師和ATAM主任評(píng)估師。這些認(rèn)證都需要學(xué)習(xí)2年的課程。其中軟件架構(gòu)師需要學(xué)習(xí)的課程有軟件架構(gòu):原理與實(shí)踐、軟件架構(gòu)文檔化、軟件架構(gòu)設(shè)計(jì)與分析和軟件產(chǎn)品線。
iCMG
iCMG對(duì)軟件架構(gòu)師的認(rèn)證強(qiáng)調(diào)7個(gè)層次的課程學(xué)習(xí),如圖2所示。在該認(rèn)證體系中,上面的3個(gè)層次由其合作伙伴完成,iCMG只負(fù)責(zé)下面4個(gè)層次的知識(shí)體系。
目前,軟件架構(gòu)師的認(rèn)證在國內(nèi)基本上是空白,既沒有專業(yè)的培訓(xùn)機(jī)構(gòu),也沒有專門的認(rèn)證指南和權(quán)威的教育認(rèn)證機(jī)構(gòu)。而軟件架構(gòu)師作為軟件的總設(shè)計(jì)師,其水平和能力直接決定了軟件系統(tǒng)的總體性能。根據(jù)教育部2004年9月8日關(guān)于緊缺人才的報(bào)告,2005年國內(nèi)軟件架構(gòu)和系統(tǒng)分析人才缺口在6萬人以上,是目前軟件開發(fā)中急需的高層次技術(shù)人才。
人事部和信息產(chǎn)業(yè)部39號(hào)文件決定在全國計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試中設(shè)立系統(tǒng)架構(gòu)設(shè)計(jì)師級(jí)別的認(rèn)證考試,試圖解決軟件架構(gòu)師認(rèn)證問題。但是,由于各種原因,該考試未能如期舉行,一拖再拖。其實(shí),這些措施也只是暫時(shí)起到一個(gè)過渡的作用,只有建立完善的軟件架構(gòu)師教育培訓(xùn)方案和權(quán)威的教育認(rèn)證機(jī)構(gòu),才是當(dāng)前急需解決的問題。
