架構(gòu)師,當(dāng)然是腦力勞動者,但是,同樣是腦力勞動也存在重大的差別。有一類腦力勞動的成果,是比較容易被評價(jià)的?;蛘吣軌蚺袛嗥鋵﹀e(cuò):比如考試的分?jǐn)?shù);或者能夠比較其高下:比如兩個(gè)人下棋分出輸贏;或者能夠交由市場來判斷:比如某種UI/UE設(shè)計(jì),我們可以通過數(shù)據(jù)統(tǒng)計(jì),了解其受用戶歡迎的程度。
但是,架構(gòu)設(shè)計(jì)只是軟件開發(fā)過程中的一個(gè)環(huán)節(jié),而在這個(gè)多人協(xié)作的場景中,我們很難單獨(dú)評價(jià)架構(gòu)的優(yōu)劣。由于硬件、軟件、部署、人員、測試、用戶、市場等眾多的差別,即使是非常相近的兩個(gè)系統(tǒng),我們也很難判斷兩個(gè)架構(gòu)孰優(yōu)孰劣。比如:eBay的架構(gòu)與Taobao的架構(gòu)哪個(gè)更加優(yōu)秀?在交付拖延的時(shí)候,我們可以將問題歸咎于開發(fā)團(tuán)隊(duì)的效率低下。在出現(xiàn)質(zhì)量問題的時(shí)候,我們可以將問題歸咎于測試團(tuán)隊(duì)的疏忽大意。在負(fù)載撐不住的時(shí)候,我們可以將問題歸咎于運(yùn)維團(tuán)隊(duì)不夠?qū)I(yè),甚至是競爭對手的DDoS攻擊。那么,在出現(xiàn)什么樣的問題的時(shí)候,我們可以將責(zé)任歸咎于架構(gòu)呢?
所以,現(xiàn)狀就是:架構(gòu)師是一個(gè)很難做好的職業(yè)。但是,從某種意義上來說,又是一個(gè)非常容易混的職業(yè)。(當(dāng)然,混是另一種需要持續(xù)修煉的高端技能。)因此,架構(gòu)師也是特別需要強(qiáng)調(diào)自我修養(yǎng)與職業(yè)道德的職業(yè)。
什么是架構(gòu)?什么是架構(gòu)師?
對于架構(gòu)的定義,有很多種,我比較同意的一種定義是:“架構(gòu)是一組關(guān)鍵決策”。這樣的決策包括但不限于:使用什么操作系統(tǒng)、語言、框架與類庫;是否在架構(gòu)中使用某種全新的技術(shù)方案;優(yōu)先考慮或滿足哪一方面的需求以及如何在技術(shù)上實(shí)現(xiàn)這一點(diǎn);更進(jìn)一步的,面對一個(gè)不斷發(fā)展的系統(tǒng),哪些部分需要優(yōu)先重構(gòu)or優(yōu)化、哪些決策需要重新考慮甚至修改;再進(jìn)一步,某些前瞻性的考慮,也是架構(gòu)決策的一部分,等到問題發(fā)生再來解決,同樣是架構(gòu)方面考慮不周。
能夠做出這些決策的,就是架構(gòu)師?;蛘哒f,在一個(gè)團(tuán)隊(duì)中,實(shí)際的最終決策者,就是事實(shí)上的架構(gòu)師。無論他被賦予什么樣的頭銜。在一個(gè)團(tuán)隊(duì)中,我們總能找到這樣的角色(無論他做得是不是稱職),而一個(gè)優(yōu)秀的架構(gòu)師,就是通常能夠做出“較多”正確決策的人。
架構(gòu)師的工作是什么?
僅僅做出決策是不夠的,我們可以從時(shí)間線上來觀察:在做出決策之前,架構(gòu)師需要足夠了解自己的“可選項(xiàng)”,無論是用戶的實(shí)際需求,還是最新出現(xiàn)的技術(shù)和框架,并且都得要有足夠深入的理解(否則就是在拍腦袋做決策)。這時(shí),架構(gòu)師的角色,是一個(gè)“研究者”。
在綜合各項(xiàng)因素,甚至是相互矛盾的各種需求之后,在考慮到團(tuán)隊(duì)的實(shí)際能力與交付壓力之后,在平衡了先進(jìn)性與可靠性、擴(kuò)展性與穩(wěn)定性、重要性與緊迫性之后,架構(gòu)師做出了一組決策。這時(shí),架構(gòu)師的角色,是一個(gè)“設(shè)計(jì)師”。
為了確保自己架構(gòu)設(shè)計(jì)能夠被正確地實(shí)施和貫徹,架構(gòu)師需要與研發(fā)團(tuán)隊(duì)密切配合,或者說服、或者引導(dǎo)、或者輔導(dǎo)、或者鼓動、甚至需要某種“強(qiáng)有力的推進(jìn)手段”,這對于架構(gòu)師的「硬實(shí)力」與「軟實(shí)力」都提出了很高的要求。這時(shí),架構(gòu)師的角色,是一個(gè)“Top Coder”。
在某些大公司,架構(gòu)師還需做很多的文檔工作,這些文檔并不是交付給開發(fā)團(tuán)隊(duì)的說明性文檔。而是某種向上級證明某某方案可行,某某架構(gòu)有效的證明性文檔。這時(shí),架構(gòu)師的角色,是一個(gè)“說服者”。
從上面的描述,我們也可以發(fā)現(xiàn),架構(gòu)師像是一個(gè)千面人:需要與上下前后左右的不同角色打交道;多面手:需要了解甚至掌握諸多不同的知識和技能。要想做好這個(gè)工作,提升自我修養(yǎng)是根本之道!
什么是架構(gòu)師的自我修養(yǎng)?
1. 以理解用戶為榮,以想當(dāng)然爾為恥
架構(gòu)師不是產(chǎn)品經(jīng)理,不是市場人員,不是客服人員。但是,如果只懂技術(shù),只考慮技術(shù),不能深入的理解用戶的需求(強(qiáng)調(diào)一下,用戶的真實(shí)需求?。蜁龀觥凹兇庾非蠹夹g(shù)先進(jìn)性”的想當(dāng)然爾的架構(gòu)出來。
2. 以腳踏實(shí)地為榮,以夸夸其談為恥
架構(gòu)師當(dāng)然需要很強(qiáng)的表達(dá)能力,甚至還需要有忽悠能力。但是,無論是表達(dá)還是忽悠,都必須以“實(shí)力為基礎(chǔ)”。如果不能腳踏實(shí)地,積累實(shí)力,只會夸夸其談。那就相當(dāng)可恥了。
3. 以身先士卒為榮,以指手畫腳為恥
還是那個(gè)經(jīng)典的臺詞“兄弟們跟我上”與“弟兄們給我上”的區(qū)別。如果對于一些困難的問題,架構(gòu)師自己都搞不定,卻擺出一副胸有成竹的表情:“這不是很簡單的嗎?你到網(wǎng)上搜一下嘛,資料大把大把的?!边@種做派,就很令人不齒。
4. 以實(shí)踐檢驗(yàn)為榮,以道聽途說為恥
如果某種技術(shù),架構(gòu)師自己都沒有做過評測,沒有看過框架代碼,沒有在過去的實(shí)踐中應(yīng)用過。卻因?yàn)橐黄恼拢粋€(gè)講座,甚至某個(gè)大公司曾經(jīng)用過這樣的證據(jù),就將一種技術(shù)引入到項(xiàng)目之中。這樣的決策,很少有不失敗的。
5. 以先見之明為榮,以后知后覺為恥
“過度設(shè)計(jì)”當(dāng)然是一個(gè)貶義詞,但是架構(gòu)師一定要有前瞻能力。不能等到火燒起來了,再去救火。雖然在企業(yè)里,的確存在“救火英雄升遷快”的現(xiàn)象。但是,一個(gè)優(yōu)秀的架構(gòu)師,應(yīng)該以“消除隱患于無形”為榮。
6. 以兼容并包為榮,以獨(dú)斷專行為恥
在架構(gòu)領(lǐng)域,很少有唯一解、最優(yōu)解。大多數(shù)時(shí)候,我們只能在多個(gè)各有優(yōu)劣的方案中,反復(fù)權(quán)衡,考慮取舍。這時(shí),開闊的視野、開放的心胸,就顯得尤為重要。如果一味的獨(dú)斷專行,聽不進(jìn)團(tuán)隊(duì)里其他同事的意見(尤其是那些學(xué)習(xí)了喬布斯的架構(gòu)師),就會非常危險(xiǎn)。
7. 以主動學(xué)習(xí)為榮,以固步自封為恥
技術(shù)的進(jìn)步實(shí)在太快,曾經(jīng)有一種夸張的說法:“平均每天誕生一種革命性的、顛覆性的技術(shù)”。雖然有很多新技術(shù),都在如此宣稱,作為架構(gòu)師,卻必須不斷地主動學(xué)習(xí),了解,甚至在某些領(lǐng)域做一些初步的嘗試。這樣的過程,在架構(gòu)師的整個(gè)職業(yè)生涯中,都無法停止。一旦產(chǎn)生了“固步自封”的念頭,這個(gè)架構(gòu)師也就“不過爾爾”了。
8. 以勇猛精進(jìn)為榮,以疏忽懈怠為恥
架構(gòu)師是一份困難的工作,更加重要的是:隨著架構(gòu)設(shè)計(jì)的完成,架構(gòu)師的工作,才剛剛開始。接下來的任務(wù),會非常瑣碎,也許會更加困難。這份工作的主題是:“架構(gòu)看護(hù)”盡可能保護(hù)架構(gòu),不會隨著時(shí)間的推移,隨著特性的增加,漸漸變得腐化。很多最初設(shè)計(jì)得相當(dāng)優(yōu)秀的架構(gòu),到最后變得不堪入目。說到底,還是要怪架構(gòu)師沒有能夠堅(jiān)持自己當(dāng)初的決策。
如何提升架構(gòu)師的自我修養(yǎng)?
在《中庸》里,子曰:“好學(xué)近乎知,力行近乎仁,知恥近乎勇。知斯三者,則知所以修身;知所以修身,則知所以治人;知所以治人,則知所以治天下國家矣。”
簡單的翻譯解釋下:好學(xué)就能顯得有智慧(至少能有知識),力行就能不脫離群眾(因不忘本而能具備仁慈之心),知恥就能守底線(有所為有所不為之勇)。能做到這三點(diǎn),就算是懂得如何提升自己的修養(yǎng)了。懂得如何提升修養(yǎng),才能懂得如何駕馭團(tuán)隊(duì)。懂得如何駕馭團(tuán)隊(duì),才能創(chuàng)作出真正偉大的,甚至風(fēng)行全球的軟件產(chǎn)品來。
這就是我理解的架構(gòu)師的中庸之道,與諸位共勉吧。
-
架構(gòu)師
+關(guān)注
關(guān)注
0文章
47瀏覽量
4611
發(fā)布評論請先 登錄
相關(guān)推薦
評論