對于工作多年的程序員而言,日后的職業(yè)發(fā)展無非是繼續(xù)專精技術(shù)、轉(zhuǎn)型管理和晉升架構(gòu)師三種選擇。
架構(gòu)師在一家公司有多重要、優(yōu)秀架構(gòu)師需要具備怎樣的素質(zhì)以及架構(gòu)師的發(fā)展現(xiàn)狀三個(gè)方面來分析
程序員如何才能晉升為優(yōu)秀的高薪架構(gòu)師?
希望通過本文讓程序員們了解架構(gòu)師的市場行情,了解架構(gòu)師的發(fā)展前景,并幫助你更清晰地做出職業(yè)規(guī)劃。
架構(gòu)師在一家公司有多重要
架構(gòu)師對一家公司、一個(gè)項(xiàng)目有多重要?我們來看一看調(diào)查的數(shù)據(jù)——
架構(gòu)師在公司中擔(dān)當(dāng)著「IT架構(gòu)靈魂人物」的角色,因?yàn)樗麄儾粌H做著架構(gòu)師的本職工作,還同時(shí)做程序開發(fā),寫核心代碼。另外,架構(gòu)師依舊是技術(shù)高手,編程能力依然是一流的。
從圖表結(jié)果來看,我們可以認(rèn)為架構(gòu)師是一家公司的IT架構(gòu)靈魂人物,他必須具備出色的設(shè)計(jì)能力、編程能力和溝通能力,在完成本職的架構(gòu)工作外,還要協(xié)調(diào)好項(xiàng)目中人員的關(guān)系,做出合理的分工,最終完成全部工作。
架構(gòu)師是程序員個(gè)人發(fā)展的一條道路,在一家公司里有著極為重要的地位,是團(tuán)隊(duì)的關(guān)鍵人物,擔(dān)當(dāng)著重責(zé)。
軟件架構(gòu)師李先生這么比喻道:「架構(gòu)師的工作就像是他打造一棵樹的主干和枝干,然后程序員們讓這棵樹上長出樹葉和果實(shí)。」
一名架構(gòu)師必須能夠?qū)懗鏊H自設(shè)計(jì)的系統(tǒng)中最難以實(shí)現(xiàn)的那段核心代碼,種出主干和枝干,才能將“冒芽開花結(jié)果”的重?fù)?dān)交給開發(fā)團(tuán)隊(duì)來做。
既然架構(gòu)師是「靈魂人物」,那么,成為一名架構(gòu)師,需要具備怎樣的素養(yǎng)呢?
優(yōu)秀架構(gòu)師需要具備怎樣的素質(zhì)
擔(dān)任全棧技術(shù)架構(gòu)師三年的劉先生表示:「架構(gòu)師雖然經(jīng)常需要做一些分工的工作,涉及到一些管理層面,但在我看來,它并不算完全的管理,更考驗(yàn)溝通能力和他的設(shè)計(jì)能力。」
在具體分析架構(gòu)師該具備的素質(zhì)前,我們首先了解下架構(gòu)師的主要職責(zé)有哪些。我選取了平臺上企業(yè)對Java架構(gòu)師、前端架構(gòu)師、爬蟲架構(gòu)師發(fā)出的面試邀請,我們先來看一看企業(yè)對架構(gòu)師這一職位的需求描述是什么——
企業(yè)對Java架構(gòu)師的職位描述與職位要求
企業(yè)對前端架構(gòu)師的職位描述與職位要求
企業(yè)對爬蟲架構(gòu)師的職位描述與職位要求
可以看出,企業(yè)無論是招哪一類架構(gòu)師,都會(huì)要求他們具有多年從業(yè)經(jīng)驗(yàn),有過項(xiàng)目開發(fā)經(jīng)歷,精通多門編程語言且熟悉數(shù)據(jù)庫。
本次我采訪了多名架構(gòu)師與程序員以及CTO,綜合他們的描述,總結(jié)出架構(gòu)師的主要職責(zé)為以下四點(diǎn)——
1確認(rèn)需求
架構(gòu)師要懂得用戶需求,理解用戶真正想要什么,這使得架構(gòu)師必須要和分析人員不斷溝通,反復(fù)確認(rèn)需求規(guī)格說明書,以此來保證他精準(zhǔn)清楚用戶需求。
項(xiàng)目經(jīng)理劉先生在受訪時(shí)說:「架構(gòu)師會(huì)與很多人溝通,例如開發(fā)人員,例如我們項(xiàng)目經(jīng)理,有時(shí)甚至是用戶本身。架構(gòu)設(shè)計(jì)的目的很明確,目的是什么呢?挖掘用戶需求?!?/p>
2系統(tǒng)分解
在架構(gòu)師認(rèn)可需求規(guī)格說明書后,架構(gòu)師已明確用戶需求是是什么,這時(shí)候便看架構(gòu)師的分解能力了。
通過入職的全棧技術(shù)架構(gòu)師周先生從「縱向分解」和「橫向分解」和我們說明了系統(tǒng)分解是什么——
「一般分為縱向分解和橫向分解,縱向分解是將整個(gè)系統(tǒng)分層,從而將整體系統(tǒng)分解成下一級的子系統(tǒng)與組件。橫向分解是在系統(tǒng)分解成不同的邏輯層或服務(wù)后,對邏輯層進(jìn)行分塊,確定層與層之間的關(guān)系?!?/p>
3技術(shù)選型
在系統(tǒng)分解后,架構(gòu)師會(huì)最終形成軟件整體架構(gòu),接下來,架構(gòu)師的職責(zé)是技術(shù)選型。
「前端到底用瘦客戶端還是富客戶端呢?數(shù)據(jù)庫是用MySQL還是MSSQL又或是Oracle呢?」架構(gòu)師張先生在接受采訪時(shí)說,「在了解用戶需求后,分解完系統(tǒng)后,技術(shù)選型是非常重要的環(huán)節(jié),提出各個(gè)方向,我再進(jìn)行評估。不過,很多人都以為架構(gòu)師是有決定權(quán)的,其實(shí)不是,架構(gòu)師沒有拍版的權(quán)力,決定由項(xiàng)目經(jīng)理來做?!?/p>
架構(gòu)師在技術(shù)選型階段會(huì)提供參考信息給項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理再從預(yù)算、進(jìn)度、人力、資源等各方面情況來權(quán)衡,最終確認(rèn)。
4制定技術(shù)規(guī)格說明
如前文調(diào)查顯示,架構(gòu)師在項(xiàng)目開發(fā)過程中是「靈魂人物」,并且要具備協(xié)調(diào)組織能力和懂得人員分工。
在制定技術(shù)規(guī)格說明階段,架構(gòu)師要協(xié)調(diào)起所有的開發(fā)人員,架構(gòu)師通常會(huì)用技術(shù)規(guī)格說明書與開發(fā)人員保持溝通,讓開發(fā)人員能從各個(gè)視角去觀測、理解他們負(fù)責(zé)的模塊或者子系統(tǒng),確保開發(fā)人員能夠按照架構(gòu)意圖實(shí)現(xiàn)各項(xiàng)功能。
在了解架構(gòu)師的職責(zé)后,再來看看架構(gòu)師該具備什么能力才能成為一家公司中的「靈魂人物」。我們先來看一下調(diào)查數(shù)據(jù)——
37%的受訪人認(rèn)為架構(gòu)師的設(shè)計(jì)能力最重要,技術(shù)實(shí)力重要度排在第二占了24%,溝通能力則排在第三,占比14%,管理能力在大多數(shù)架構(gòu)師眼中并不是最重要的,僅占了7%。此次,我們詳細(xì)分析排在前三的能力。
1設(shè)計(jì)能力-擅長整合分析
架構(gòu)是過程,并非結(jié)果。
架構(gòu)是架構(gòu)師洞察內(nèi)在結(jié)構(gòu)、原則、規(guī)律與邏輯的過程,架構(gòu)師要做到清晰理解系統(tǒng),以及簡潔描述,這是分析整合的能力。
一個(gè)架構(gòu)師必須具備極強(qiáng)的分析能力,要做到根據(jù)產(chǎn)品宗旨和目標(biāo),分析清楚產(chǎn)品定位以及產(chǎn)品業(yè)務(wù),再整合利用現(xiàn)有的技術(shù)領(lǐng)域,找出最佳方案,實(shí)現(xiàn)產(chǎn)品概念。
2技術(shù)實(shí)力-實(shí)現(xiàn)產(chǎn)品規(guī)劃
架構(gòu)師首先要將代碼寫的清晰易懂,要能夠?qū)崿F(xiàn)功能,做到?jīng)]有Bug,這要求架構(gòu)師必須具備至少熟練掌握一門語言。
這是最重要的,每一名出色的架構(gòu)師,必定是一位優(yōu)秀程序員。架構(gòu)師并不是純粹的管理崗位,對那些愛寫各式文檔、畫流程圖、脫離代碼、只說不做、高高在上的架構(gòu)師,程序員們通常會(huì)稱他們?yōu)椤?/p>
PPT架構(gòu)師。
不懂編程的架構(gòu)師的職業(yè)生涯必定是短暫的,無論如何都不可本末倒置,要想實(shí)現(xiàn)自己的職業(yè)規(guī)劃,不能荒廢自己本身的技能,技術(shù)是架構(gòu)師賴以生存的最基本能力。
所以,不推薦不熱愛編程的人去做架構(gòu)師,對于團(tuán)隊(duì)工作和個(gè)人發(fā)展來說,都會(huì)帶來糟糕的后果。
3溝通能力-能夠橫向溝通
架構(gòu)師必須參與項(xiàng)目開發(fā)全過程,包括確認(rèn)需求、系統(tǒng)分解、架構(gòu)設(shè)計(jì)、技術(shù)選型、制定技術(shù)規(guī)格說明、系統(tǒng)實(shí)現(xiàn)、集成測試和部署各階段,在這一系列過程中,架構(gòu)師會(huì)與各部門溝通交流。
一個(gè)產(chǎn)品會(huì)有多部門合作,架構(gòu)師在其中的溝通極為重要,直接影響產(chǎn)品進(jìn)度與質(zhì)量。架構(gòu)師不僅要與開發(fā)人員溝通,也要和項(xiàng)目經(jīng)理、分析人員甚至用戶溝通,來實(shí)現(xiàn)產(chǎn)品的各種可能性。
所以,對于架構(gòu)師來講,不僅有技術(shù)方面的要求,還有能夠橫向溝通的要求。
架構(gòu)師的發(fā)展現(xiàn)狀
成為一名架構(gòu)師是程序員的職業(yè)發(fā)展道路之一,架構(gòu)師的工作前景也是程序員們所關(guān)心的事情,采訪了數(shù)名架構(gòu)師,做出「架構(gòu)師的發(fā)展現(xiàn)狀」的相關(guān)分析。首先,我們來看一看架構(gòu)師們想去怎樣規(guī)模的公司——
可以發(fā)現(xiàn),初創(chuàng)公司并不受到架構(gòu)師們的青睞,架構(gòu)師們更偏向進(jìn)入具有一定規(guī)模已有成熟產(chǎn)業(yè)線的公司進(jìn)行發(fā)展。
接下來,我們收集了近一年來架構(gòu)師所收到的面試邀請數(shù)——
能夠看出,最近一年來,企業(yè)對架構(gòu)師的需求量是在逐步上升的。在了解企業(yè)需要后,我們再來看一看架構(gòu)師的收入——
以上數(shù)據(jù)是兩年來通過1入職的架構(gòu)師年薪,20萬以下和60萬以上各占3%,20萬至30萬、30萬至40萬各占22%,40萬至50萬占比最大,高達(dá)34%,從現(xiàn)狀年薪來看,架構(gòu)師屬于高薪職業(yè)。
高薪職業(yè)往往都擔(dān)著巨大壓力,對于架構(gòu)師而言,他們在工作中面臨的最大的困難又是什么呢——
協(xié)調(diào)人際利益占了35%,管理分工占了26%,這些與「人」相關(guān)的內(nèi)容成為架構(gòu)師在工作中面臨的最大困難。對于能成為架構(gòu)師的人來說,只要不是PPT架構(gòu)師,基本都具備了對架構(gòu)師而言最重要的設(shè)計(jì)能力和編程能力,所以最重要的有時(shí)并不是最困難的。
他們必須思考清楚用戶最需要的是什么,同時(shí)協(xié)調(diào)好項(xiàng)目內(nèi)部人員的利益關(guān)系,對于很多不擅于打交道的程序員而言,協(xié)調(diào)和管理的確成為了他們最頭疼的問題。
受訪的架構(gòu)師們表示,面對協(xié)調(diào)和管理所帶來的困擾時(shí),不能著急,協(xié)調(diào)人員之間的利益、管理和分配工作量本身就是一件需要大量實(shí)踐才能有成效的事情,成功的架構(gòu)師們往往會(huì)選擇從減壓做起,而協(xié)調(diào)與管理,在他們看來,是一件水到渠成的事。
以上就是長沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)小編介紹的“Java架構(gòu)師之路-小白到Java年薪百萬的架構(gòu)師”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注長沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。