這是一個很是敏感的話題,每次談論到技術總監要不要寫代碼的時候,總會引發一片爭論。html
有的程序員說技術總監若是不寫代碼怎麼能領導好技術團隊;有的說技術總監還須要寫代碼?若是技術總監都須要寫代碼的話,那技術團隊有多操心吶。正反觀點看起來都蠻有道理的,我也試着和你們聊聊這個話題。程序員
我感受本身仍是蠻有資格來討論這個話題的,我有過30人左右技術團隊負責人的經歷、也有過管理超100多人研發副總的經驗,也經歷了從一個程序員到一個技術管理者身份轉變的歷程,因此方便從各個角度來看待這個問題。數據庫
任何問題拋開背景來討論都是耍流氓。微信
好比下面這個圖片,正着看的時候是一個老太太,若是咱們把手機倒過來看的話是一個小姑娘。markdown
這就是咱們看待問題的角度不一樣,所展示給咱們的視角也是不一樣的。架構
技術總監要不要寫代碼這個話題,其實也是須要看公司是什麼樣的背景、處於什麼樣的階段、技術總監管理人員的規模來定。分佈式
另外技術總監只是一個統稱,不少公司還會分部門技術總監、研發中心技術總監等,不一樣級別也須要不一樣的討論。post
首選探討一下什麼樣的技術總監須要寫代碼,這裏的寫代碼指的是參與到具體的編碼實現。我的認爲有如下 3 種狀況:優化
01 技術驅動型的技術總監須要寫代碼編碼
不少互聯網公司產品,徹底是依賴技術來構建的,公司的命脈都是技術,那麼這個技術總監就必定要參與到核心代碼的編寫中。
好比我一直比較關注的創業公司 PingCAP ,他們公司的主要產品是 TIDB,一個開源分佈式關係型數據庫。咱們知道開發一個高效的數據庫是一個技術含量很高的事情,那麼這種類型公司的技術總監必定會參與到編碼中。
02 初創技術團隊的技術總監須要寫代碼
一個創業公司的初創團隊,可能公司的技術體系、技術路線、技術文化徹底都沒有搭建起來的時候,一定須要技術總監參與到一線,一步步將這些內容搭建起來。
同時幾乎全部的創業公司在剛開始的時候,就技術的須要程度是至關緊迫的,因此這個時期的技術總監,必定要親自參與其中,確保核心系統功能不會出現問題。
有一個很著名的反例:
2012年的時候程維爲了滴滴產品快速上線,花了 8 萬找了一個外包作了一個 APP,開發出來不只體驗差,還出現了耗費流量高、耗電、聽不到訂單、定位不許的問題,差點直接將滴滴搞死。後來張博的加盟才逐步解決了這些問題,產品穩定後才贏得了滴滴後期的大發展。
國內外的互聯網公司都存在創業早期過度注重技術,認爲技術能夠搞定一切;創業成熟期後又過度輕視技術,致使後期問題頻發。因此對技術的重視程度應長期保持一致。
03 管理十幾人如下的技術總監須要寫代碼
管理十幾人的技術總監,我的建議整體仍是須要參與到核心代碼的梳理中,須要對系統的各個特性瞭然於胸,知道系統極可能出現的問題點,在出現問題的時候能夠快速定位解決。
在這個規模的時候,若是技術總監不參與到核心代碼的工做中,實際上是很難掌控整個系統的穩定性,出現問題的時候須要依賴於團隊中的核心骨幹來解決。
固然確定不是須要參與大量的編碼工做,能夠在架構設計、核心代碼評審、代碼優化層面來多作工做。若是這個階段的技術總監徹底脫離代碼編寫工做,容易致使團隊技術失控。
國內技術總監現狀
在國內,大多數技術總監實際上是沒有參與到具體的代碼編寫中的。一方面國內不多有上面所說的純粹技術驅動型的公司,大多數互聯網公司對技術的重視程度仍然很不夠,認爲技術只是服務於公司商業價值,從而不斷的壓迫技術團隊。
特別是老闆若是對技術一點都不瞭解的話,那對技術團隊就是一個大災難,可悲的是大多數企業都是這個狀況,這個時候技術總監的很大一部分精力,就變成了如何向老闆合理的解釋清楚技術團隊的工做狀況,不是封閉幾個月或者壓迫一下就能夠搞出一個完美的系統。
國內的大多數技術總監都被迫陷入不少的行政事務中,好比我曾經呆過的第三方支付公司,各類監管機構每月都會有各類檢查,另外還須要處理各類外部須要文檔、行政事務、外部談判、公司會議等各類各樣的瑣事中。
固然這些都不是最可怕的,最可怕的是若是參與到公司的辦公室政治,那不少事情就已經偏移了事務的本質,不是這個事情你要不要作好的問題,還須要考慮不少其它的因素,相似的事情最容易讓人心累,耗費巨大的精力。
技術總監到底須要幹些什麼?
首先強調一下技術總監是一個管理崗位,因此它的管理職責遠遠大於編碼職責,技術總監的工做更應該關注宏觀、全局性的問題。
若是一個技術總監本身代碼寫得賊溜,團隊內小夥伴代碼寫得一片爛渣渣,那他絕對不是一個合格的技術總監。
因此技術總監不是讓本身編碼很爽,技術總監的工做更應該是讓團隊內的成員編碼很爽。讓團隊內的小夥伴編碼很爽,其實就有不少的工做要來作。
好比構建一個有技術氛圍的團隊,作有前瞻性的技術選型,在業務設計、架構設計、系統架構上下狠功夫。任何團隊內不太爽的工做都是技術總監的責任,好比需求變更太頻繁、技術選型不合理致使問題頻發,團隊沒有按期的技術分享。
技術總監須要負責技術管理體系的建設和維護,對行業技術發展趨勢和管理現狀具備準確的判斷,從技術層面上協助決策層實現戰略目標。因此必須綜合實力很強,既要懂技術,也要懂管理,並且職位越高,所須要的知識面要越廣。
用通俗易懂的話來說:技術總監的工做就是對內就是讓團隊幹活很爽,對外要拼命接住老闆吹過的牛逼。
那麼咱們最後來探討一個話題:除過上面三種狀況,工做中寫代碼的技術總監就是好的技術總監,不寫代碼的技術總監就不是好的技術總監嗎?
答案留給你們,請在評論區告訴我。
*做者簡介:純潔的微笑,一個有故事的程序員。曾在互聯網金融,第三方支付公司工做,現爲一名自由職業者,和你一塊兒用技術的角度去看這個世界。個人我的微信號 puresmile2,歡迎你們找我聊天,記錄你個人故事。