為什麼你技術能力強,但是依然做不了架構師?原因都在這!

前言

一位面試官曾經和我聊過一個問題“為什麼有些人技術能力很強,但是依然做不了架構師”?

的確,在現實中有些人在技術能力上是項目組中最強的,但為何老闆不直接選他作主要的負責人呢?

今天我們來聊聊這個話題。

去年年底,我面試了一位架構師候選人。候選人是一家大工廠的高級工程師。由於技術好,他在團隊裡承擔一些管理工作。從他簡歷上的項目經驗可以看出,他的編程能力和技術深度屬於優秀行列。在一些項目中,他承擔了部分的架構設計職責,是我們一個優秀潛在的候選人。

經過幾輪面試,面試官對他評價很好,他的編程能力和技術深度都通過了測試。所以當我面試時,我從他做過架構設計的項目開始,挑選了一些具體的要點進行深入的交流。

然而,當我真的圍繞“架構師”職責去考察時,卻發現,他對“架構師”的理解,還停留在接到需求後,依據產品設計給出實現的階段。對於下一步的模塊分解、代碼重構、技術選擇、性能優化等方面,他雖然有一些瞭解和接觸,但過於膚淺,缺乏系統的瞭解。

後來,在和他進一步溝通的過程中,我發出這樣的感慨:如果一個工程師不能從一個架構師的角度去思考,帶領團隊,完成整個系統的架構設計和開發,他就永遠做不了一個架構師。如果他做不了架構師,他將沒有機會領導一個團隊,完成系統的架構設計和開發。

為什麼你技術能力強,但是依然做不了架構師?原因都在這!


裡似乎有一個死循環。你能解開它嗎?當然,從我15年的架構師經驗來看,有兩個關鍵點可以突破這個死循環。

首先,你表現出優秀的開發能力,讓領導相信,即使你沒有架構設計與領導開發的經驗,你也能勝任架構師的角色,從而任命你為架構師。

其次,你在成為架構師之前,就掌握了足夠的做架構的方法和技能。被任命為架構師後,你不會無所適從地把事情搞砸。相反,您將能夠有序地工作,並打好您的架構設計的第一仗。

那麼,你怎麼能成為一名架構師呢?換句話說,一個好的架構師應該具備哪些能力和素質?在我看來,一個好的架構師必須具備八項核心能力:

為什麼你技術能力強,但是依然做不了架構師?原因都在這!

架構師一定要很強的編碼能力之後才能當嗎?感覺自己編碼能力不強,不太喜歡編碼,但是喜歡整體框架和設計,但是架構師應該都是從程序員來的吧。

正常情況下,高級程序員、技術骨幹中的一些具有良好管理素質和能力的人,才能勝任軟件架構師。

架構師必須負責整個系統核心和最困難部分的編寫,並設計團隊協作開發的方式。能根據編程經驗看到未來的變化,架構太重要了,不能出錯,很難回頭。如果一個團隊需要一個架構師,他必須是團隊中代碼編寫能力最好的,負責至少40%的核心開發工作,不能脫離實際業務。

不寫代碼那個可以是部門經理,可以是開發總監,但一定不能是 架構師。

記得以前有個說法,架構師,基礎開發部門做的都是什麼事?髒活,累活,和一般人幹不了不願意幹,幹完還一時半會看不出效果的活。

如果你不負責整個項目的代碼實際編寫,請閉嘴。因為業務總是在變化,項目團隊的代碼總是在變化,架構也總是在變化。

管你寫的是什麼框架,設計的是什麼項目,離開前線都是扯淡。

以前領導說過,團隊裡應該有兩個leader,一個是行政上的,一個無冕的。

架構師一般都是那個無冕之王,所有開發對你的尊重和對團隊的作用都是毋庸置疑的。

為什麼你技術能力強,但是依然做不了架構師?原因都在這!


整體框架和設計,軟件架構,這些都屬於軟件設計中的“上層建築”、高層設計(high-level design),對產品、系統的成功具有關鍵的戰略性影響,當然很重要。但只有務虛的這些還遠遠不夠,軟件開發還有務實的另一半。

所有高層、抽象的軟件設計最終都要落實到低層、下層的具體代碼(low-level design)細節上。如果這些上層設計不能落實到高質量、高效率的實際代碼,那這些所謂的“上層建築”都將成為無法實現、漏洞百出的空中樓閣(海市蜃樓)。

而且你的編碼能力(基礎)不行,你的整體框架和設計能力也不會好的,很難達到讓人信服的水平。



分享到:


相關文章: