在很多程序員的大腦中,都會有這樣一個(gè)打怪升級的路徑:
曾經(jīng),我對這個(gè)路徑深信不疑,現(xiàn)在想想,也許是因?yàn)槌醭雒]的我所看到的江湖太小。慢慢地,在江湖中久了、視野開了,就發(fā)現(xiàn)自己想得太簡單了。
第1個(gè)對“架構(gòu)師”的定義
十多年前,在我初入江湖的時(shí)候,首先進(jìn)入了一家位于深圳的大型軟件公司,研發(fā)人員的規(guī)模上千。面試我的人據(jù)說是公司中的架構(gòu)師,我當(dāng)時(shí)心里真的是對這個(gè)架構(gòu)師充滿了仰慕之情,以至于至今我都依稀能夠回憶起他的容貌和聲音。
當(dāng)時(shí)的后端主流技術(shù)是Struts+Spring+Hibernate,也就是當(dāng)時(shí)業(yè)內(nèi)常說的SSH;前端的主流技術(shù)是HTML+jQuery+原生JS。那時(shí)還沒有管理jar包依賴的maven,也沒有開箱即用的SpringBoot,如果在新的項(xiàng)目中要將上述技術(shù)整合起來供開發(fā)人員適用,往往需要幾天甚至幾周的時(shí)間,而這些工作都是架構(gòu)師的職責(zé)。
于是,我給架構(gòu)師下了第一個(gè)定義:
架構(gòu)師就是把各種框架整合到一個(gè)項(xiàng)目中,提供通用的代碼,支撐開發(fā)人員完成業(yè)務(wù)功能的開發(fā)及提供必要的技術(shù)支持的人。
后來我回到了西安,此時(shí)的我,憑借自身的不斷努力,已經(jīng)將上述的幾個(gè)技術(shù)掌握的很好了。在西安的一家規(guī)模不大的軟件公司中,我也做起了架構(gòu)師,同時(shí)給自己定了一個(gè)工作原則:
不參與業(yè)務(wù)功能的開發(fā),只為程序員提供通用能力和技術(shù)支持。
在之后的幾年中,我一直堅(jiān)守自己對架構(gòu)是的定義,原理業(yè)務(wù)知識,一心鉆研各種炫酷的技術(shù),也一直作為團(tuán)隊(duì)中面對困難的最后一道防線為開發(fā)人員提供支持。
第2個(gè)對“架構(gòu)師”的定義
現(xiàn)在,我已經(jīng)在江湖中摸爬滾打了12年,在架構(gòu)師這個(gè)崗位上也已經(jīng)有8年左右,原本簡單的認(rèn)為“架構(gòu)師即巔峰”的我,中間有一段時(shí)間迷失了方向。在不斷地與人溝通加上多次的面試經(jīng)歷后,似乎在每個(gè)人的心里,對“架構(gòu)師”這個(gè)名詞的理解都是不一樣的。
有一次,在參加一個(gè)架構(gòu)師訓(xùn)練營的時(shí)候,培訓(xùn)教材中有一幅圖給我留下了很深的印象,雖然原圖我已無法找到,但表達(dá)的思想如下圖所示:
講師將架構(gòu)師類比為交響樂中的指揮家,在他的描述中,架構(gòu)師的視角應(yīng)該比別人高,關(guān)注點(diǎn)并非獨(dú)立的一個(gè)個(gè)具體問題,而應(yīng)該是用全局的視角去通盤考慮、整體規(guī)劃,然后指揮別人去將規(guī)劃落到實(shí)地。如果架構(gòu)師過分的深入細(xì)節(jié),只會讓他因無法抬頭看路而迷失方向,就像“不識廬山真面目,只緣身在此山中”一樣。
于是,我對“架構(gòu)師”有了第二個(gè)定義:
架構(gòu)師就是一個(gè)站在比別人更高的角度上看待問題,憑借更高的視角而統(tǒng)領(lǐng)全局,不會拘泥于技術(shù)細(xì)節(jié)的人。
但這樣一個(gè)定義也讓我在之后的面試中不斷地被面試官挑戰(zhàn),在大部分的面試中,面試官對架構(gòu)師的要求依然是某項(xiàng)技術(shù)的深度,而非整體的技術(shù)廣度。
第3個(gè)對“架構(gòu)師”的定義
在近幾年的工作經(jīng)歷中,我又接觸到了另一類架構(gòu)師,他們常常被稱作“解決方案架構(gòu)師”、“行業(yè)架構(gòu)師”、“交付架構(gòu)師”和“售前架構(gòu)師”等。
在我最初從事這類工作的時(shí)候,我將之前給架構(gòu)師下的兩個(gè)定義又重新審視了一遍,似乎此時(shí)的工作內(nèi)容與那兩個(gè)定義都完全的不同。
經(jīng)過近2年在解決方案架構(gòu)師這個(gè)崗位上的歷練,發(fā)現(xiàn)這類架構(gòu)師實(shí)際上是作為客戶的咨詢顧問存在的。工作內(nèi)容幾乎已經(jīng)脫離編碼了,而是給予某一個(gè)技術(shù)和產(chǎn)品體系,在客戶購買前、中、后提供貼身的咨詢服務(wù),幫助客戶規(guī)劃技術(shù)方向、產(chǎn)品組合以及提供實(shí)踐方案等。
此時(shí),“架構(gòu)師”的第三個(gè)定義在我的心中誕生了:
架構(gòu)師就是站在戰(zhàn)略的層面,對企業(yè)中信息化技術(shù)提供整體解決方案、路線圖規(guī)劃以及合規(guī)性監(jiān)管等工作的人。
后來我考取了有“架構(gòu)師黃金證書”的TOGAF,也向我打開了“企業(yè)架構(gòu)”的大門,這也讓我更加確信我對架構(gòu)師下的第三個(gè)定義。
“架構(gòu)師”不是這么定義的
雖然我心中對架構(gòu)師有了3個(gè)定義,然而它們非但沒有讓我對架構(gòu)師地認(rèn)識更加清晰,反而讓我更加地迷惑。尤其是在面試架構(gòu)師這個(gè)崗位時(shí),明明自己很強(qiáng),但卻總覺得自己跟面試官的對話不在一個(gè)頻道上。這也一度讓我對自己的能力產(chǎn)生了懷疑,開始了自我否定。
在深入的思索及閱讀相關(guān)的資料后,我發(fā)現(xiàn),問題的根源在于對“架構(gòu)師”這個(gè)名詞的濫用。
Martin Fowler(微服務(wù)架構(gòu)提出者之一)在其一篇談?wù)摷軜?gòu)師的文章中說到:
不管架構(gòu)是什么,它都包含了重要的事物,而架構(gòu)師就是關(guān)注這些重要事物的人。
我認(rèn)為,“架構(gòu)師”這個(gè)名詞的濫用,也正是因?yàn)檫@個(gè)崗位關(guān)注的是重要的事物,因此,行業(yè)中在招聘時(shí),只要涉及重要的事物,就會稱其為“架構(gòu)師”。
架構(gòu)師的分類
其實(shí),架構(gòu)師是分很多種類的,每一類架構(gòu)師都有自己的成長路徑——這與打怪升級是不同的。
首先,我將“關(guān)注竟要的事物的人”拆分為三類,如下圖所示:
常見的技術(shù)專家有:數(shù)據(jù)庫架構(gòu)師、緩存架構(gòu)師、框架架構(gòu)師、工作流架構(gòu)師”、大數(shù)據(jù)架構(gòu)師等,這些架構(gòu)師專注于對應(yīng)領(lǐng)域的技術(shù)細(xì)節(jié)。常見的產(chǎn)品、行業(yè)專家有:售前架構(gòu)師、解決方案架構(gòu)師、交付架構(gòu)師、某某行業(yè)架構(gòu)師等,這些架構(gòu)師的關(guān)注點(diǎn)不在于研發(fā)和技術(shù),而在于某個(gè)產(chǎn)品體系或某個(gè)行業(yè)的通用訴求。
對于上圖中的“架構(gòu)師”而言,還可以繼續(xù)拆分,如下圖所示:
研發(fā)類架構(gòu)師:為一個(gè)IT項(xiàng)目或產(chǎn)品負(fù)責(zé),責(zé)該IT系統(tǒng)的技術(shù)規(guī)劃、研發(fā)和運(yùn)維等工作。常見的崗位名稱有:系統(tǒng)架構(gòu)師、軟件架構(gòu)師、技術(shù)架構(gòu)師等。業(yè)務(wù)類架構(gòu)師:普遍存在于各行各業(yè),負(fù)責(zé)規(guī)劃其所在企業(yè)的業(yè)務(wù)邏輯。常見的崗位名稱有:領(lǐng)域?qū)<摇I(yè)務(wù)架構(gòu)師、總設(shè)計(jì)師等。企業(yè)架構(gòu)師:普遍存在于各行各業(yè),負(fù)責(zé)企業(yè)內(nèi)外IT系統(tǒng)的規(guī)劃和建設(shè)。在非IT企業(yè)中時(shí),主要負(fù)責(zé)企業(yè)內(nèi)部IT的建設(shè),為業(yè)務(wù)部門提供信息化的支撐;在軟件或互聯(lián)網(wǎng)等IT企業(yè)中時(shí),則可僅負(fù)責(zé)企業(yè)內(nèi)部系統(tǒng)也可內(nèi)外系統(tǒng)均負(fù)責(zé)。
架構(gòu)師的工作方式
這里所說的工作方式主要分為兩類:集權(quán)型和連接型。
(1)集權(quán)型架構(gòu)師
集權(quán)型架構(gòu)師通常在某一領(lǐng)域內(nèi)擁有出眾的能力,是以“問題終結(jié)者”的角色出現(xiàn)在團(tuán)隊(duì)之中的,當(dāng)出現(xiàn)其他團(tuán)隊(duì)成員無法處理的問題時(shí),集權(quán)型架構(gòu)師會成為團(tuán)隊(duì)的最后一道防線。
集權(quán)型的優(yōu)點(diǎn)有:
作為決策的唯一制定者,可以高效地統(tǒng)一團(tuán)隊(duì)內(nèi)的思想,保證了團(tuán)隊(duì)內(nèi)的一致性。作為團(tuán)隊(duì)內(nèi)的經(jīng)驗(yàn)和技術(shù)方面的專家,會為其他成員帶來安全感。
集權(quán)型的缺點(diǎn)有:
集權(quán)型架構(gòu)師作為唯一的決策者可以高效地統(tǒng)一思想,但在實(shí)際工作中,架構(gòu)師往往并非距離問題最近的人,架構(gòu)師的誤判也是比較常見的,由于集權(quán)型架構(gòu)師是唯一的決策者,其他成員只能跟隨,因此極有可能做出錯誤的決策。集權(quán)型架構(gòu)師自身強(qiáng)大的個(gè)人能力在為其他成員帶來安全感的同時(shí),會讓其他成員對集權(quán)型架構(gòu)師形成依賴,導(dǎo)致其他成員的積極性和主動性降低,集權(quán)型架構(gòu)師自身的工作強(qiáng)度隨之上升。
(2)連接型
連接型架構(gòu)師就像黏合劑,他們更善于與他人合作。這類架構(gòu)師可能不具備出眾的個(gè)人技術(shù)能力,但他們擁有豐富的經(jīng)驗(yàn)和溝通能力,通過和不同職能團(tuán)隊(duì)之間深度合作,協(xié)助團(tuán)隊(duì)解決問題,必要時(shí)可為團(tuán)隊(duì)提供相應(yīng)的資源和授權(quán)。另外,連接型架構(gòu)師會成為技術(shù)人員和非技術(shù)人員之間的橋梁,將業(yè)務(wù)部門和技術(shù)部門連接在一起。
在我工作的早期一段時(shí)間,我都非常支持集權(quán)型,因?yàn)槲矣X得這樣的溝通成本最少、效率最高,但現(xiàn)在來看,其缺點(diǎn)也是不容忽視的,并且,系統(tǒng)越龐大缺點(diǎn)也就約明顯。因此我目前的推薦方式是以連接型為主,集權(quán)型為輔。
總結(jié)
筆者結(jié)合自己在軟件研發(fā)行業(yè)12年的工作經(jīng)歷,提出了在不同階段對架構(gòu)師這個(gè)崗位的3種定義。在與各類人群針對架構(gòu)師的討論過程中,得出“架構(gòu)師”一詞在行業(yè)中被廣泛的“濫用”這一結(jié)論。
在對架構(gòu)師這一崗位深入的思索后,提出了架構(gòu)師的分類體系。筆者認(rèn)為,被濫用的“架構(gòu)師”一詞實(shí)際上表達(dá)了包括技術(shù)專家、架構(gòu)師和產(chǎn)品、行業(yè)專家在內(nèi)的不同方向,并對架構(gòu)師這個(gè)方向繼續(xù)分類為:研發(fā)類架構(gòu)師、業(yè)務(wù)類架構(gòu)師和企業(yè)架構(gòu)師三類。
總之,架構(gòu)師關(guān)注重要的事物,視角應(yīng)該更高,避免陷入細(xì)節(jié);系統(tǒng)越龐大,越是需要連接型的架構(gòu)師,當(dāng)團(tuán)隊(duì)躊躇不前時(shí),需要集權(quán)型架構(gòu)師快速地決斷。
▼
更多相關(guān)內(nèi)容,歡迎閱讀作者新書《企業(yè)架構(gòu)與繞不開的微服務(wù)(雙色)》!
▊《企業(yè)架構(gòu)與繞不開的微服務(wù)(雙色)》
樊超 著
在理論方面,介紹了企業(yè)架構(gòu)標(biāo)準(zhǔn)、云原生思想和相關(guān)技術(shù)、微服務(wù)的前世今生,以及領(lǐng)域驅(qū)動設(shè)計(jì)等;在實(shí)踐方面,介紹了用于拆分微服務(wù)的“五步法”、包含4個(gè)維度的“企業(yè)云原生成熟度模型”,以及衡量企業(yè)變革成果的“效果收益評估方法”等。
本書的核心內(nèi)容包括:
企業(yè)架構(gòu)的定義與企業(yè)架構(gòu)師的職責(zé);企業(yè)架構(gòu)是否設(shè)計(jì)良好的評判依據(jù);云原生的相關(guān)思想和技術(shù);微服務(wù)的起源、演化、特性、拆分方法和落地指南;云原生為企業(yè)帶來的機(jī)遇與變革等。
本書可以幫助企業(yè)明確痛點(diǎn)、制定原則、規(guī)劃路徑、建設(shè)能力和評估成效,最終實(shí)現(xiàn)微服務(wù)架構(gòu)在企業(yè)中的持續(xù)運(yùn)營和持續(xù)演化,從而應(yīng)對日益增多的業(yè)務(wù)挑戰(zhàn)。