突破技術管理,IT人中年危機變契機

java填坑路發表於2018-10-18

作為一個老技術人,今天不聊技術,就聊點技術人員職業發展的事情:對技術管理崗位的認知,比如技術總監。

先貼一張技術人員職業發展路線圖,按照管理路線和技術路線區分。在國外管理路線和技術路線的職位會按照 IT Manager 和 TechLead 去區分。

但在國內其實是沒有純粹的管理路線,管理崗位中一定有具體技術工作的要求。今天我說說對“技術總監”崗位職能要求的理解。

我理解技術總監的權責範疇應該包括:

技術性工作

管理性工作,分為人員管理(即團隊管理)和專案管理

在技術型工作中,我認為更多考驗的是一個技術管理者的技術深度和廣度,而管理性工作中,更多考驗的是一個技術管理者對於複雜人和事的協調能力。

01

技術性工作

_____

對於一位優秀的技術人員而言,應該具備如下三種技術能力:

關鍵性技術能力

架構設計能力

工程管理能力

而一位技術管理者首先應該是一名優秀的技術人員,必須能在這三種技術能力之間遊刃有餘。

1、關鍵性技術能力

你也可以把它理解為技術難點的攻克。我曾看到過朋友圈包括餓了麼 CTO 張雪峰、釘釘 CTO 一粟等,在團隊面前現場 Coding 演示某些難啃骨頭的解決場景。

不要求技術管理者寫程式碼,但是在某些風險性大的技術場景裡,技術管理者必須能親自上陣,以免團隊成員解決不了“甩鍋”的時候可以接得起來。

而且瞭解團隊的程式碼情況,融入團隊的程式碼編寫,也方便對系統架構的掌控。另外,作為示範程式碼,能夠讓管理者在團隊中更好的立威。

2、架構設計能力

我們在說到架構設計的時候,一般會提到“技術架構”和“業務架構”,脫離業務架構的技術架構一定不會成功。這就要求技術管理者對業務有良好的理解能力。

而且架構的設計不僅僅是指能畫架構圖,能寫架構文件,能把熱門技術堆砌到圖紙上;一個沒在工地上跑過的建築設計師一定不會造出好的大樓。

反之,一個不做架構設計就想寫出好系統的技術人員不是天才就是傻子。架構的設計要更好的考慮執行效率、業務的可擴充性 /伸縮性,特殊場景的分模組管理等。

如果做不到這些,系統將隨業務的進展越來越冗餘,最終將為如何“解耦”操碎心,“重構”往往就在這樣的場景下被提出來,這是對系統和業務的具有傷害性的選擇。

所以作為技術總監,必須要有大的視野去組織模組和架構,避免早期的設計缺陷造成痛苦不堪的晚期“重構”。

3、工程管理能力

很多人對“工程管理能力”感到陌生,如果我把這塊分開說為“效能”、“運維”和“效率”大家就好理解了。我們更多的認為工程管理能力關係到穩定性和效率上。

小團隊當中,工程管理能力往往價值體現不大,但當遇到一個大團隊的時候,大團隊的運轉穩定性和效率就會成為突出問題。

這裡面主要包括持續性優化的能力和工具化使用的能力,並且需要較多的靠近流程管理和業務理解,有比較多的細小和瑣碎事情。

我見過很多技術管理者開發出身,但是晉升到管理者的崗位後,不得不去了解運維之類的事情。這些都屬於工程管理能力的範疇。

02

管理性工作

_____

對於一位優秀的技術管理人員而言,除了三種技術能力,還應當具備團隊管理和專案管理這兩方面的能力。

1、團隊管理

團隊管理,即人員管理。很多技術人員都很厭惡管理工作,讓一個常年跟沒有脾氣和情緒的機器打交道的技術人員,去應付心思千萬的人員管理,聽上去確實很有挑戰。

但你要知道,管理的目標是實現組織目標,最重要的是制定管理標準、貫徹執行和校驗結果。

而這些也並非非要管理者親力親為,我們在組織的構建中強調的搭班子,就可以安排一些在這方面擅長的人以“副總監”甚至是“專案經理”“助理”的職位存在。

我覺得一個技術總監要分出 30% – 40% 的精力在團隊的管理工作上,主要包括這些方面:

2、績效考核

關於技術人員的 KPI 一直是一個千古難題,並且熱度不減。難就難在技術人員工作的質量難以量化,並且受不可控因素的影響太多。

我認為給技術人員的績效指標達到兩個目的即可,一個是量化可量化的東西,一個是鼓勵他的積極性。

所謂量化可量化的東西,通常我們會認為是指在時間進度上量化或者 Bug 數量、專案數量等。

但也可以將能保證“質量”的因素模組化,分模組量化,當然這個要求比較高。

因為所謂保證質量的模組,是需要技術總監確定至少是建議性,而不是丟給技術人員自行設定,比如設定必須要完成的單元測試指標、質量監控指標等。

很多人會問需不需要在技術人員的考核指標中設定業務指標,我認為在業務相對穩定的情況下是有一定有可行性的。

業務指標可以幫助技術人員更好的理解大團隊的目標,知道在業務環節中技術價值的體現,更好的發揮主動能動性。

3、組織結構設計和人員招募

我認為組織結構設計更好的關乎團隊的效率和能力發揮,包括崗位的增刪減,扁平化結構還是梯度化結構,什麼樣的人安插在什麼樣的崗位上,這也是管理者應該懂得一門大課程。

而招聘上,我只想說,對於技術總監而言抓重點崗位,普通崗位的招聘可以由經理去進行,但不要小覷招聘,尋找團隊平均能力以上的人是一個團隊走的遠的基礎。

4、階梯人員的培養

我比較在乎這點,就像我並不認為一個人的成長是順其自然,我認為每個人的成長中都是受到重要的人和事的影響的。

環境對於一個人的成長非常重要,要儘可能的去創造可持續成長的環境,包括如下三點:

Code Review ,我認為有必要性。

技術團隊內部技術方案的評審,最好的學習往往源於把手裡的工作做好。

外部的學習和講座,最怕坐井觀天,最後被時代拋棄,不要抱著工作不放,要想象一下未來的世界和你的位置。

5、跨部門得溝通協調

對於技術總監而言,除了處理部門內的事情,部門外的事情也需要一定的協調溝通。

但是我並不建議多花時間在外部的會議和溝通上,更多的溝通是跟隨專案走,由專案負責人去跟進和反饋即可。

你只需要協調那些別人要不來的資源,當然你能要的來,大部分原因是因為你在公司的威信,你曾給過別人的幫助。

6、專案管理

專案管理,即對事的管理。很多公司會設立有專案經理的角色,這塊就不怎麼需要技術總監來操心;但反過來講,每一位技術人員也都身兼專案經理的角色,而技術總監一定是最大的專案負責人。

有關專案的事情會比較瑣碎,但完全可以按照專案負責人分配下去,技術總監需要的是指定負責人、過問專案計劃和進度,另外就是在專案推進遇到阻力的時候,去解決問題。

主要包括這兩方面:

專案進度:專案評審,確定專案計劃;檢查進度,進度延遲預警;專案驗收和總結;

資源協調:人員協調,包括專案組人員以及編外人員的支援;IT 設施協調,包括硬體、軟體系統等,公司內資源還有公司外資源。

03

寫在最後

_____

有一種說法,領導就是要拿別人拿不到的資源,做別人做不了的決定,承擔別人承擔不了的責任。

但是,我想說技術管理者難度更勝一層,技術管理者要先有專業性,再來領導力,需要像醫者一樣的仁心仁術,而不是簡單粗暴的工廠管理。

我也不認同很多人認為的隨著時間的增長,技術人終將成為技術管理者,否則何來的“中年危機”,不是時間的累積就能得到質的變化。

我身邊也有很多技術管理者經常感嘆:“感覺自己做到技術總監就到頭了,未來乏力。”

只想說,從技術能力的成長,到複雜事物管理能力的成長,再到視野和決策能力的成長,這才是一個技術人員,從程式設計師到中層管理者(技術總監)再到高層管理者(CTO)的能力成長過程。

如果你覺得乏力,或許應該多出來看看,畢竟有些東西是靠鑽研出來的,有些東西是靠多行路、多交流得出來的,比如情商和視野,見聞的東西多了就知道該如何處理了。

歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481

群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用”沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!


相關文章