2. 架構(gòu)師是一個純粹的技術(shù)工作

某方面講這是對的,但又不全對,因為技術(shù)工作只是架構(gòu)師工作做的一個核心關(guān)注點而已。一個nb程序員可能在技術(shù)方面是nb的,但是在很多方面確實欠缺的,并不適合做架構(gòu)師。

做企業(yè)應(yīng)用的,牽涉的面太廣,加上行業(yè)生存環(huán)境又不是很好,企業(yè)管理普遍也不規(guī)范,所以很難象某些領(lǐng)域,架構(gòu)師就是一個純粹的技術(shù)工作。

首先,如何獲取項目經(jīng)理和管理層對你的信任和支持, 是你開始工作的起點, 這一塊和技術(shù)并沒有直接的關(guān)系,取決于你的表達(dá)能力和主動性,你如何展現(xiàn)你的實力,你做事是否足夠主動,是否有意識和能力去推動項目。不能讓老板感覺你就是一個greek,這一條是很多不錯的技術(shù)人員難以做到的。而實際工作中,你也絕不能把所有時間都花在技術(shù)上,你至少要拿出4分之一的時間去和pm,和老板溝通,協(xié)商問題, 才能得到你的生存空間。

其次,如何獲得團(tuán)隊成員對你的信任和支持,是你展開工作的基礎(chǔ),如果你不夠傳奇,就需要你做一個牧師或者善于聆聽的人, 通過熟悉自己的團(tuán)隊成員的構(gòu)成和技術(shù)特點,才能充分發(fā)揮他們的所長,贏得他們的信任和支持,看起來這好像是pm的工作,但是不盡然,如1所訴,架構(gòu)設(shè)計并非是一個個體脫離團(tuán)隊的行為。和團(tuán)隊成員打交道,多半又要花掉你4分之一以上的時間。

好吧,你還要明白,為啥要叫架構(gòu)師而不是高級工程師(這個已經(jīng)out了), 是因為你還需要承擔(dān)售前售后任務(wù), 如何簡單清晰的向不懂技術(shù)或者半懂技術(shù)的客戶講清楚技術(shù)問題,這是個學(xué)問,要做到這點,按我以前的老板說法,你必須有常識, 常識要多道可以用一些簡單的故事例子把東西講出來,所以有空要多看看電視,多和銷售學(xué)學(xué),順便還得學(xué)點基本禮儀,上次我差點把某公司來給我們推銷產(chǎn)品的工程師給踢出去了,在我提了意見以后,丫居然堅持跟我說他們東西是最好用的,你敬業(yè)沒錯,但是好歹我才是用戶吧。

如果你的公司是做項目為主的,恭喜你,你還要學(xué)會如何和客戶周旋,如何回避到客戶內(nèi)部以及客戶和其他供應(yīng)商之間的矛盾里去。因為某方面,作為架構(gòu)師,你就代表了技術(shù)上的權(quán)威,你要明白一點,管理上出了問題,從來都是往技術(shù)上推是最簡單的。項目之外的話,說起來一定要謹(jǐn)慎,再謹(jǐn)慎。比如如果有客戶不愿意購買設(shè)備和軟件實現(xiàn)負(fù)載均衡,找你咨詢,你隨口一說,啥啥免費軟件可以做,好吧,你完蛋了,你要么就是得罪了某供應(yīng)商(搞不好還就是你們公司賣的),要么,就是等著將來客戶給你套口子吧。

而且,作為一個企業(yè)應(yīng)用的架構(gòu)師,你不可避免的要和各類廠商打交道,這里面也是大堆的學(xué)問,虛虛實實的東西大把,偶爾你甚至?xí)艿矫郎蛘咩y彈的攻擊(記住,只是偶爾,人家一般不樂意在你這個級別上下血本)你要一不小心分不出真假,很可能就做了大堆錢公司的小白鼠,搞的在客戶和公司間里外不是人。


還有,架構(gòu)設(shè)計往往還需要考慮到技術(shù)的生命周期問題, 那么你對客戶公司,對開發(fā)公司的狀況的了解,對整個行業(yè)的發(fā)展趨勢的了解,也會影響到你設(shè)計的決策,這種東西往往跟市場有關(guān),并不取決于技術(shù),這考核的就是你的視野和對問題的敏感程度。 打個比方,你開發(fā)了一個很好的系統(tǒng),但是到了你離職的時候,客戶卻發(fā)現(xiàn)你選擇的這種技術(shù)已經(jīng)淘汰了,現(xiàn)在很難再找到合適的人員進(jìn)行維護(hù)了,這樣的架構(gòu)師,算合格么?

說完了外面的東西,再說里面的。

一個成熟的企業(yè)應(yīng)用的架構(gòu)師,除了對行業(yè)技術(shù)應(yīng)用有準(zhǔn)確的把握和經(jīng)驗積累之外至少還需要有豐富的業(yè)務(wù)知識。

一般來說,架構(gòu)設(shè)計由幾個面構(gòu)成,其中一個面是技術(shù)架構(gòu),還有一個面是業(yè)務(wù)架構(gòu), 技術(shù)架構(gòu)必須通過后者的驗證。積累一個行業(yè)的業(yè)務(wù)知識,少則一年半載,多則3年5年,這都不是單純看書閱讀資料可以獲得的。客戶可不會只因為你的技術(shù)如何先進(jìn),nb 就驗收項目的。


再有, 再好的架構(gòu),也需要向程序員溝通和推廣, 那么你至少也要是個合格的技術(shù)講師吧? 兄弟們管你叫那個師,你總還得有能力教人家一點東西吧?

某些項目,技術(shù)甚至可能根本就不是關(guān)注點,我曾經(jīng)參與的一個項目,在我加人的時候架構(gòu)設(shè)計和開發(fā)工作都已經(jīng)完成,而且是基本構(gòu)建在相對錯誤的道路上,基于項目進(jìn)度的壓力,我已經(jīng)沒有可能重新推到再來,所以我把工作的重心轉(zhuǎn)移到如何培養(yǎng)提高團(tuán)隊成員的技術(shù)能力,降低不成熟架構(gòu)對他們工作的干擾,換句話說,我干的工作就是打補丁。這些看實不夠nb的工作大部分都和技術(shù)無關(guān),和流程圖,模式無關(guān),但是有效的彌補了架構(gòu)的缺陷,保證了項目的順利進(jìn)行。

既然不能選擇離開,那么菜刀也是刀,對吧。


最最后,你還要有點人脈,有在天涯海角到處混的兄弟,這樣你搞不定問題的時候,卡住的時候,或者他們一個小小的提示就可以救你于水火之中。不會不是你的錯, 解決不了問題才是你的錯。

在我看來架構(gòu)師的工作,是一個混合了各種知識和經(jīng)驗的工作,架構(gòu)師更象酒店里的行政大廚,只會炒菜那是絕對不行的,很難單純的定義為技術(shù)工作。當(dāng)然,動不動就把架構(gòu)師抬舉為藝術(shù)家,開口閉口XX的藝術(shù),哪還是過了,你以為畫畫的都是藝術(shù)家么? 我家狗仔還能用噓噓畫地圖來著。

指望多讀書,多寫代碼,一個人對著電腦就能迅速成長為架構(gòu)師,嗯, 我覺得可能性不是很大。