Open-Source World

          let's learn and study.
          posts - 28, comments - 23, trackbacks - 0, articles - 1

          架構(gòu)師的能力模型

          Posted on 2007-08-30 10:31 tearofmoscow 閱讀(330) 評論(0)  編輯  收藏

           

          能力要成體系

          這兩天關(guān)于我那篇架構(gòu)師的能力模型BLOG上的討論終于停歇了,所有的幾十個回復我都一一看過。大多數(shù)不是在第一時間看到,也差不遠了。正好CSDNblog又新添了回訪的功能,于是一一回訪,看了看批評我的,或者贊許我的都是些誰。

           

          但是我一篇也沒有回復,回訪時也沒給人家留個信兒。以前的或許是懶,或者是沒想說的,這次卻不是。這次真的是故意不回。這有原因。

           

          今天要講這個話題,一方面是因為這篇架構(gòu)師的能力模型blog,另一方面則是看到了另一篇名為真的漢子blog。后面這個,稍后會再講它的關(guān)系,我們這里還先說我的這篇博客所反映出來的信息。

           

          我調(diào)查了一下回復者的先后,大概是越到后面,贊同的或者基本贊同的就越多;越在前面反倒是批評者眾。這個順序很重要,因為它正好反映了一種架構(gòu)師能力,就是謹慎。

           

          我們先來說這套架構(gòu)師的能力模型的圖。批評者要么認為這套圖在求大求全,是超人模型;要么在認為這是不切實際,追求完美。其實都不是。首先大家對我所指的架構(gòu)師要有個概念。我們很多人都有設(shè)計工作,比較做數(shù)據(jù)庫設(shè)計或者具體功能的設(shè)計。這些設(shè)計中也有架構(gòu)框架的概念,例如插件架構(gòu)/框架。但是,這是架構(gòu)設(shè)計,不是架構(gòu);是一種技術(shù),而不是一種能力。在我的架構(gòu)師模型中,這些大概只占到實現(xiàn)能力->設(shè)計能力中的很少一部分。

           

          因此先強調(diào)我說的架構(gòu)師不是指一個能做架構(gòu)的人。前者是把架構(gòu)師當職能,后者是當工人。

          那么我到底說的是怎樣的架構(gòu)師呢?comiunknown給了一個稍稍接近一點點的答案:

          --------------------

          13年的coder

          21年的客戶溝通工作;

          31年的team leader

          4、無限的學習、思考期,學會分析別人的系統(tǒng),思考為什么這么設(shè)計的原因,如果

             讓我來設(shè)計,那些地方可以改進;

          5、還要有一定的天賦/靈氣,能夠從紛亂的客戶要求中挖掘出真正的需求。

          --------------------

          后面兩條我基本同意,事實上也言及了我給出的能力模型圖中的幾個分支。但前三條,卻正體現(xiàn)了一種行業(yè)積弊:浮躁。連Peter Norvig都在說十年學會編程了,那么我們那些招聘五年開發(fā)經(jīng)驗的Web架構(gòu)師的小廣告是不是該撤了?

           

          那么,我們那種兩年三年開發(fā),或者從某某學校畢業(yè)就想當架構(gòu)師的想法,是不是也該放下了?

           

          然而,我也得承認有絕頂高手。大家智商不一樣,沒準兒Peter Norvig要十年才學會編程,某些人三年兩年也學得會、學得好。當然了,這個我說服不了大家。但是要清楚的是,我們在這里說架構(gòu)師,而開發(fā)能力和設(shè)計能力只是架構(gòu)師能力的很少一部分,即使有人比Peter Norvig(或其它更多的大牛們)更牛,那么起碼也不能說自己學會寫程序就成了架構(gòu)師吧。

           

          還是沒解釋什么是架構(gòu)師對不?當然。我就來說說什么是架構(gòu)師,而什么又是做架構(gòu)

           

          做架構(gòu)差不多就是畫圖紙。象UML這樣的東西就是制圖元素,基本上你能用好一些建模語言,能構(gòu)畫出一個房子的基本骨架來,就是會做架構(gòu)了。這些東西在學校能學、書上能教,照貓畫虎個三年兩年來,沒有虎的威風,也有虎的樣子的。這在能力模型中也有,大概在實現(xiàn)能力->設(shè)計能力->設(shè)計期語言實現(xiàn)能力->模型化以及一些其它很小的分支里頭。

           

          而要有虎的威風氣勢,這起碼要看過虎,而且要有面對真虎凜然不慎的心胸。在架構(gòu)設(shè)計中,這樣的能力也可以先從學習中來找,這是模型中實現(xiàn)能力->設(shè)計能力->了解既有系統(tǒng)或模型的主要內(nèi)容,在實現(xiàn)能力->設(shè)計能力->設(shè)計評估中,也有大部分內(nèi)容是關(guān)于這一點的。

           

          設(shè)計評估里有一句懂得欣賞的才是藝術(shù)家,我們這里在說讓你學會欣賞的法子,卻不見得你有品評者的心胸。所以類似于學會肯定別人的設(shè)計這些也成了你的能力,而你應(yīng)該注意到,這里的學會肯定……”已經(jīng)不單純是技術(shù)能力的范疇了,它已經(jīng)涉及到你的性格修養(yǎng)。

           

          當然有人說架構(gòu)是一門藝術(shù)。作為藝術(shù)性格很強的高手、專學者或者精英,很多人并不會肯定別人,而是拘于自我認為自己是超人。這樣的人中國自古就不缺,也有善評稱其雅士獨特的,其藝術(shù)作品也大多成就斐然。但是有這樣品質(zhì)的能力,雖然不能說不好,卻一定不能拿來做架構(gòu)師。

           

          因為他只會做架構(gòu),或者說只能做非常好的架構(gòu)。卻不懂得如何推行架構(gòu)

           

          架構(gòu)真的是好不好的問題嗎?如同我對工程的理解一樣,架構(gòu)的問題的根源,也并不在于它是不是完美或者漂亮,而是在于是否合用。因此,架構(gòu)師必須對實施架構(gòu)的團隊,以及實施的過程有充分的了解,知道他們的能力缺陷,知道實現(xiàn)過程要消耗的資源,清楚每個環(huán)節(jié)可能的故障以及先兆。只有這樣,架構(gòu)師才能設(shè)計一個讓這個團隊能實現(xiàn),而且在實現(xiàn)過程中能受控的架構(gòu)。

           

          要知道,你作為架構(gòu)師被請來,不是畫幾張圖紙交給項目經(jīng)理,說:你們?nèi)プ霭桑霾怀鰜硎悄銈儾粫觥<词鼓憧梢陨眢w力行,在這個團隊中教大家、培養(yǎng)大家,那么公司的開銷呢?風險呢?這些東西難道就不考慮了?項目的周期因為實現(xiàn)的復雜程度而無法控制時,項目就死掉了。那么,追根究底來說,是不是架構(gòu)師的問題?是啊,你為什么會做了一份不合用的架構(gòu)呢?

           

          所以這一部分能力,是在要你的開發(fā)經(jīng)驗、團隊經(jīng)驗以及用人識人的經(jīng)驗中去找的,這些大概包括在模型圖的實現(xiàn)能力->設(shè)計能力->了解你的主要溝通對象實現(xiàn)能力->架構(gòu)推行中。

           

          你看我們說了這么多,還只講了幾個小的分支,主要還是在實現(xiàn)能力中打轉(zhuǎn)。大多數(shù)人的問題是:我們?yōu)槭裁匆私?/span>決策背景,以及類似于談判溝通風險等等這些方面的能力呢?

           

          我們說過做架構(gòu)不同于是架構(gòu)師。問題的關(guān)鍵就在于規(guī)模。如果你只是為一個幾人小組而設(shè)計一個架構(gòu),那么沒關(guān)系;大概你還會是實施人員,因此更是沒什么問題。但是,架構(gòu)師應(yīng)該面臨的是大規(guī)模項目,是百人、數(shù)百人規(guī)模的團隊的實施工作。架構(gòu)師身邊,除了具體的實現(xiàn)人員,還是更多的設(shè)計師、項目經(jīng)理、技術(shù)專家、老板、客戶……面對這些問題,你還能說我會做架構(gòu)就夠了嗎?

           

          要知道,上述的每一個角色,都會對架構(gòu)造成傷害。我在做架構(gòu)實施過程中說得最多的,就是架構(gòu)傷害這個詞。因為每個角色都會對架構(gòu)有疑問、有想法。對于公司、客戶高層來說,即使你是最權(quán)威的專家,在沒能把你的設(shè)計講述清楚之前,他們也是不會盲目地通過項目的。因為專家拍腦袋的教訓,從(包括傳統(tǒng)行業(yè)在內(nèi)的)歷史上來看,真的是血淋淋的。

           

          架構(gòu)必須面臨的是決策者的思想以及方向,你得明白他們?yōu)槭裁词且鲆粋€架構(gòu),希望這個架構(gòu)支撐多長時間周期的持續(xù)開發(fā)和經(jīng)營。然后,你得抺平這些高端的思想,把它變成一個可以具體實施的方案,因為具體到開發(fā)人員來說,他們是以完成任務(wù)為目標的,而不是去憧憬那些高端的思想

           

          作為架構(gòu)師,你要站在一個既務(wù)實也務(wù)虛的角色上,你得理解項目經(jīng)理、產(chǎn)品經(jīng)理和開發(fā)人員最切實際的實施方案,也得了解戰(zhàn)略決策者們?yōu)閷碜龀龅囊?guī)劃。重要的是,架構(gòu)師這個角色,對體系的保障正是面向這些規(guī)劃的——你看看,可持續(xù)、可移植、彈性、集成性……”這些不都是對戰(zhàn)略的闡敘么?

           

          現(xiàn)在你會還認為那些超人能力是不需要的嗎?你還堅持三年兩年就可以成就一個架構(gòu)師這樣美妙的的構(gòu)想嗎?當然,如果你要在一個小規(guī)模團隊中擔任架構(gòu)角色,實現(xiàn)一些架構(gòu)的設(shè)計工作,那么固然是行的,但請將眼光放開,想一想我們一直為大型團隊而煩惱的那些問題……國內(nèi)的軟件行業(yè),在大型團隊上來說,真的是沒有多少積累和思考的。

           

          我們現(xiàn)在來說那些很快就回復的,以及回復時對上述問題根本沒有思考的人朋友,他們犯下的,不正是這幅模型圖最上面的那個分支中表現(xiàn)出來的問題嗎?在學會交談中就清清楚楚地寫著學會聽不要急于表達,以及肯否。在這個例子中,真正的問題是:急于表達可能是個性問題;而急于肯否,則關(guān)乎于性格修養(yǎng)了。面臨一件事物時,過早的肯否,其實是使你失去了更深地了解它的機會。

           

          我們現(xiàn)在看到的這幅架構(gòu)師能力模型,其實表達了個人能力、性格與心理素質(zhì)的一種組合,這絕不是單獨某個方面的提高或者補強。作為一個工作型角色(例如開發(fā)人員)來說,大要在技術(shù)方面擅長就很好了,專精更是不錯。這也是我們技術(shù)角色的一貫思維。但對于職能型角色(例如一定管理職務(wù)或者管理鏈條上的中間環(huán)節(jié))來說,能力要成體系就是重中之重了。

           

          所以這又變成一個角色問題了。我們要從工作型角色變成職能型角色(例如做技術(shù)變成做管理),那么根本之處,便在于從專精能力變成有體系的能力培養(yǎng)。這就是我開始提到那篇真的漢子的博客文章的原因。周筠老師在講她的這篇博客時說,她的一些編輯在面對MSRA的這位作者時,表現(xiàn)很緊張、很怯,基本上已經(jīng)到了不敢接微軟那位漢子的話的地步。我聽到這個故事的第一反應(yīng),是說:

          --------------------

          Aimingoo said (0:36:04):

          這與膽量沒多大關(guān)系。

           

          Aimingoo said (0:37:32):

          1、承認錯誤 2、據(jù)理力爭

          就這兩條,就可以跟這個人打好交道了。

           

           

          但細想下去,我又接著說:

          --------------------

          Aimingoo said (0:38:26):

          隨便說,第三條是有禮有節(jié)。這看起來是外交辭令。但是真的很有用。因為據(jù)理力爭是必要的,但把握不好尺度,事就會砸。

          而對于很多人,這三條是一條一條過來的。

           

          imingoo said (0:40:43):

          先是做不好承認錯誤,什么事都認為自己對;接下來做不到據(jù)理力爭,是性格軟弱的一面;

          最后是不懂禮節(jié),是缺乏教育的一面。

          這三件做好,就算業(yè)務(wù)能力上有欠缺,也是人才了。

          :)

           

          然而我們看到,這里提及的三條,卻正是技術(shù)人員,以及我們前面講到的那種藝術(shù)性格很強的高手通常的問題。換在這樣的故事里,就是技術(shù)再強再好,也不會跟這位先生打好交道。所以,這真的是要當成個人能力體系的不足來看,而不能單純地練練膽量就可以了。

           

          在我們講架構(gòu)師能力模型這個話題時,很多人認為這個模型求大求全,然而正是他們應(yīng)該太大太全的那一部分能力是他們所缺的;很多人認為這是超人模型,然而這正表現(xiàn)了他們對架構(gòu)師這個角色(而非做架構(gòu)的能力)的盲目。同樣,面對周筠老師所說的這位漢子,那些露怯者是不是有一部分能力缺失,或者對自己所處的職能(而非技術(shù)或職業(yè))角色有些盲目了呢?

           

          所以能力的體系問題,愛立信的這個模型是對的。隨便說,這個三角模型將個人內(nèi)在素質(zhì)放在最中間,而這正好是我在架構(gòu)師能力模型圖中基本不講的,這個問題便留給大家去思考好了。正所謂省是自省,得是自得,做人便要越活越淺,知已不足方能厚補,從而顯得有力。而做架構(gòu)師以及做好職能角色這兩件事,合在一起便是一個自省自得,自我修養(yǎng)的功夫。放在表皮來看,用我常說的話來講,就是能力要成體系了。

           

           

          ===============

          我的其它相關(guān)文章:

          推個薦:十年學會編程

          架構(gòu)師的能力模型(圖)

          也說讀書

          談企業(yè)軟件架構(gòu)設(shè)計

           


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 灵山县| 康平县| 青龙| 通江县| 定远县| 通海县| 潍坊市| 开化县| 白水县| 惠水县| 赤城县| 海兴县| 沐川县| 甘泉县| 威远县| 新龙县| 孝感市| 峡江县| 贵溪市| 太原市| 上栗县| 扎赉特旗| 哈巴河县| 三门峡市| 汉沽区| 洛扎县| 当涂县| 汉源县| 新蔡县| 逊克县| 合阳县| 阳山县| 吉安市| 金乡县| 兴隆县| 文化| 沛县| 遂平县| 冷水江市| 临潭县| 鄂伦春自治旗|