閱讀127 返回首頁    go 技術社區[雲棲]


如何成為一名頂尖的阿裏架構師?

在技術圈,架構師一方麵是已經被說爛的職務,另一方麵也是讓人困擾的職位,行業發展到現在似乎人人都是架構師,各種架構圖絢麗多彩漫天飛舞,同時永遠有人在抱怨架構太爛、坑太多。

那麼到底什麼是架構師?如果有一天把你丟到架構師的位置上你會怎麼做? 做什麼呢?今天,阿裏國際技術事業部的無葉,與大家坐一起,聊一聊。

工作五年以上的童鞋,或多或少都會有這樣的經曆:在小團隊或者項目中承擔非明確的架構師職責,我們做項目或者產品的關鍵設計和實施;負責產品基礎設施;引入新的理念,框架;解決團隊中的複雜問題;在團隊成員中享有較高的聲譽;被老板認為是團隊的關鍵人物。

如果有一天我們決定(或者其他原因)去做一個專職架構師,那麼這兩者會有什麼區別呢?是否隻是之前的方式的延續就足夠?

我把第一種狀態稱之為“兼職架構師”,因為處於這種狀態下的同學大部分的時候擔當開發人員、PM的角色,隻有在小部分時間承擔了架構師的部分角色。做的絕大部分事情是自己可控的,自己做架構自己做實施或者在小團隊中推行。而後一種“專職架構師”則麵臨的是:他們不負責具體的業務係統,而又對所有的係統負責,他們也很少直接負責項目,但是職責卻要求他們必須對項目要有提前把控,他們麵對的是更大的團隊,更大的問題域。

當然每一個人對是否應該存在“專職架構師或團隊”都有自己的想法,從阿裏的曆史來看單獨的架構團隊也是分分合合。在這裏不去探討,我們關心的是如果有,可以怎麼做。

首先要弄清楚的是專職架構師的職責到底是什麼?

微軟對架構師有一個分類:企業架構師EA(Enterprise Architect)、基礎結構架構師IA(Infrastructure Architect)、特定技術架構TSA(Technology-Specific Architect)和解決方案架構師SA (Solution Architect)。這個分類是按照架構師專注的領域不同而劃分。

在阿裏除了EA之外的領域大家可能會同時涉及到,隻是不同的時期偏重點不一樣。比如前麵說的“兼職架構師”可能偏重SA?專職架構師偏向IA+TSA。另外一個角度專職架構師更多考慮問題域和相應的係統架構,而“兼職架構師”更多的是產品的係統架構,具體來說我認為專職架構師重要的職責如下:

職責一:全局的技術規劃

架構師第一個最重要的職責是技術規劃,架構師最重要的產出是架構,架構就是藍圖,就是阿裏常說的一張圖。畫藍圖就是做“全局的技術規劃”,這張圖上有什麼? 沒有什麼?什麼時候有?什麼時候沒有?當你嚐試去畫圖的時候一連串的問題拷打著你。對於一個架構師的心力和體力都是很大的考驗。隻有這張圖非常清晰明確才能指引整個團隊在同一個時間向同一個方向前進。

為了這張圖你必須和業務緊密溝通,你必須有對應的技術深度和廣度,在選型上有自己的方法論,敢於做出判斷和決策。

另外一個重點是全局。全局我的理解是全麵+格局,全麵就是你的技術規劃包含各個方麵的,在所有的領域都有明確的指引,所以這張圖本質是一係列的圖的集合;格局上不要隻關注短期利益,更多關注長期利益。不止關注團隊利益,更多從公司角度出發,隻有這樣長期才能為團隊帶來更多的成長。

職責二:統一的方法&規範&機製

架構師第二個重要的職責,我們不僅僅要提供藍圖,還要提供配套的方法論&規範&機製來保障有序進行。藍圖確保整個團隊在同一個時間向同一個方向前進。規範確保前進是有序的。為了有序,你必須拆解你的圖,縱向、橫向、功能內聚等等緯度拆解到權責清晰對等。這是一項相對複雜且繁瑣的過程。

職責三:完備的基礎構建

除了藍圖確保整個團隊在同一個時間向同一個方向前進、規範確保前進的有序的、我們還需要提供強大的武器庫,基礎構建的完備程度決定你的團隊裝備是小米+步槍,還是飛機+大炮。完備的基礎構建是否全部作為實際架構的職責,可以因情況而定,比如是否有實體的架構組。但是架構對此應當負責。

職責四:落地的規劃才是架構

如果規劃不能落地就是傳說中的PPT架構師,我甚至覺得這是對專職架構師最大的挑戰,前麵的幾個職責更加偏向硬實力,而這一個更多的是軟實力的體現。專職的架構師如果不去關注落地的話慢慢就會架空,變成PPT架構師,那差不多就game over了。

正如前麵說到對架構師最大的挑戰是落地層麵,實際上“完備的基礎構建”已經涉及到落地層麵的事情,但是和完備的基礎構建不同的是整體架構的落地涉及到方方麵麵,麵臨是更多影響因素:和業務的關係、組織結構、權責定義等等。

所以有人從“架構師的權利和職責”的角度出發推論誰合適做架構師。得出的結論是一個組織的領導者。因為隻有他才能調動、協調組織。也有人認為架構師既不能完全負責技術團隊,也不能完全遊離在技術團隊之外。因為負責容易屁股決定腦袋,遊離就隻能靠個人聲望值吃飯了。

如正架構分類中EA的存在,很多領導者也確實身體力行的踐行架構師的職責,然而精力終有限。實際上更多是平衡的過程。當然最高境界是影響力。

針對前麵的職責怎麼考核?或者怎麼設定自己目標?雖然說在不同的團隊階段,不同外在環境,不同的權責情況下不一樣,但是在結果導向的背景下落地肯定是架構師重要的考核指標之一。

考核一:全局的技術規劃

相比其他幾項這一項是最重要又最難評價的,技術規劃的好壞、全麵性、前瞻性都是定性的描述,如何指引我們做出一個理性的評價呢?回歸到本質上“技術規劃”隻是一個指路燈,團隊中每一個人能不能看到“指路燈”就到達目的地是指路燈價值的體現。所以無論是唯價值論還是唯口碑論衡量的其實是同一個東西。

考核二:統一的方法&規範&機製

這一項的考核就相對容易多了,無論是業界還是每一個架構師本身都有自己的一套方法,所以隻需關注這些東西對應的產出。

考核三:完備的基礎構建

我認為在大公司,大部分重量級的基礎構建已經是非常完備,對於架構師來說更難的不是從0到1,而是克製、邊界和從1到2的過程。對於架構師也好、技術團隊也好“從0到1”總是充滿了吸引力,加上技術人的特征,大公司技術史上永遠不缺少重複的輪子,創建這些輪子成就了一代一代的同學,拆除這些輪子再成就了一代的同學,所以克製尤為重要;有了克製跨團隊的合作就尤為重要,對應的有兩個點一是清晰邊界,二是共建。

考核四:落地的規劃才是架構

雖然說落地是非常不控的事情,但是考核卻很容易的:做到就是做到、沒有就是沒有、質量好就是質量好,標準非常清晰。過程中隻需要緊跟拆解的事情結合實際的組織和業務情況做出決策。

對現階段團隊的情況來說,我認為第一是建立“架構語言”,有了語言才有溝通協作的基礎,所謂的“架構語言”並不是什麼新的東西,而是產品的業務架構,用例和領域模型;研發的應用架構,組件和時序圖; 運維的部署架構等等。

第二是建立“認同體”,無論是通過技術能力、知識傳遞、領域組織等各種方式逐漸形成“認同體”,且在其中形成架構體係對應的人員體係。

第三永遠做服務者,架構師對應的客戶是團隊的每一個成員,必須始終保持客戶第一的心態。架構師存在的目的是成就研發團隊每一個同學,我們提供必要的平台、服務和空間,然後彼此成就。

最後借用一句話:從無到有的是架構;從表到裏的是抽象;從粗到細的是設計。大家對架構師有哪些看法,也歡迎在留言區留言,我們一起交流討論。

原文發布時間為:2017-10-26

本文來自雲棲社區合作夥伴“阿裏技術”,了解相關信息可以關注“阿裏技術”微信公眾號

最後更新:2017-10-26 10:33:35

  上一篇:go  Aliware推出應用配置管理大殺器,分布式架構下配置推送秒級生效
  下一篇:go  雙11啟動,阿裏小二們居然在公司裏吃吃吃吃吃