1. 程式人生 > >技術總監到底要不要寫程式碼?

技術總監到底要不要寫程式碼?

這是一個非常敏感的話題,每次談論到技術總監要不要寫程式碼的時候,總會引起一片爭論。

有的程式設計師說技術總監如果不寫程式碼怎麼能領導好技術團隊;有的說技術總監還需要寫程式碼?如果技術總監都需要寫程式碼的話,那技術團隊有多操心吶。正反觀點看起來都蠻有道理的,我也試著和大家聊聊這個話題。

我感覺自己還是蠻有資格來討論這個話題的,我有過30人左右技術團隊負責人的經歷、也有過管理超100多人研發副總的經驗,也經歷了從一個程式設計師到一個技術管理者身份轉變的歷程,所以方便從各個角度來看待這個問題。

任何問題拋開背景來討論都是耍流氓。

比如下面這個圖片,正著看的時候是一個老太太,如果我們把手機倒過來看的話是一個小姑娘。

這就是我們看待問題的角度不同,所展現給我們的視角也是不同的。

技術總監要不要寫程式碼這個話題,其實也是需要看公司是什麼樣的背景、處於什麼樣的階段、技術總監管理人員的規模來定。

另外技術總監只是一個統稱,很多公司還會分部門技術總監、研發中心技術總監等,不同級別也需要不同的討論。

首選探討一下什麼樣的技術總監需要寫程式碼,這裡的寫程式碼指的是參與到具體的編碼實現。個人認為有以下 3 種情況:

01 技術驅動型的技術總監需要寫程式碼

很多網際網路公司產品,完全是依賴技術來構建的,公司的命脈都是技術,那麼這個技術總監就一定要參與到核心程式碼的編寫中。

比如我一直比較關注的創業公司 PingCAP ,他們公司的主要產品是 TIDB,一個開源分散式關係型資料庫。我們知道開發一個高效的資料庫是一個技術含量很高的事情,那麼這種型別公司的技術總監一定會參與到編碼中。

02 初創技術團隊的技術總監需要寫程式碼

一個創業公司的初創團隊,可能公司的技術體系、技術路線、技術文化完全都沒有搭建起來的時候,必定需要技術總監參與到一線,一步步將這些內容搭建起來。

同時幾乎所有的創業公司在剛開始的時候,就技術的需要程度是相當緊迫的,所以這個時期的技術總監,一定要親自參與其中,確保核心系統功能不會出現問題。

有一個很著名的反例:

2012年的時候程維為了滴滴產品快速上線,花了 8 萬找了一個外包做了一個 APP,開發出來不僅體驗差,還出現了耗費流量高、耗電、聽不到訂單、定位不準的問題,差點直接將滴滴搞死。後來張博的加盟才逐步解決了這些問題,產品穩定後才贏得了滴滴後期的大發展。

國內外的網際網路公司都存在創業早期過分注重技術,認為技術可以搞定一切;創業成熟期後又過分輕視技術,導致後期問題頻發。所以對技術的重視程度應長期保持一致。

03 管理十幾人以下的技術總監需要寫程式碼

管理十幾人的技術總監,個人建議總體還是需要參與到核心程式碼的梳理中,需要對系統的各個特性瞭然於胸,知道系統很可能出現的問題點,在出現問題的時候可以快速定位解決。

在這個規模的時候,如果技術總監不參與到核心程式碼的工作中,其實是很難掌控整個系統的穩定性,出現問題的時候需要依賴於團隊中的核心骨幹來解決。

當然肯定不是需要參與大量的編碼工作,可以在架構設計、核心程式碼評審、程式碼優化層面來多做工作。如果這個階段的技術總監完全脫離程式碼編寫工作,容易導致團隊技術失控。

國內技術總監現狀

在國內,大多數技術總監其實是沒有參與到具體的程式碼編寫中的。一方面國內很少有上面所說的純粹技術驅動型的公司,大多數網際網路公司對技術的重視程度仍然很不夠,認為技術只是服務於公司商業價值,從而不斷的壓迫技術團隊。

特別是老闆如果對技術一點都不瞭解的話,那對技術團隊就是一個大災難,可悲的是大多數企業都是這個情況,這個時候技術總監的很大一部分精力,就變成了如何向老闆合理的解釋清楚技術團隊的工作情況,不是封閉幾個月或者壓迫一下就可以搞出一個完美的系統。

國內的大多數技術總監都被迫陷入很多的行政事務中,比如我曾經呆過的第三方支付公司,各種監管機構每個月都會有各種檢查,另外還需要處理各種外部需要文件、行政事務、外部談判、公司會議等各種各樣的雜事中。

當然這些都不是最可怕的,最可怕的是如果參與到公司的辦公室政治,那很多事情就已經偏移了事務的本質,不是這個事情你要不要做好的問題,還需要考慮很多其它的因素,類似的事情最容易讓人心累,耗費巨大的精力。

技術總監到底需要幹些什麼?

首先強調一下技術總監是一個管理崗位,所以它的管理職責遠遠大於編碼職責,技術總監的工作更應該關注巨集觀、全域性性的問題。

如果一個技術總監自己程式碼寫得賊溜,團隊內小夥伴程式碼寫得一片爛渣渣,那他絕對不是一個合格的技術總監。

所以技術總監不是讓自己編碼很爽,技術總監的工作更應該是讓團隊內的成員編碼很爽。讓團隊內的小夥伴編碼很爽,其實就有很多的工作要來做。

比如構建一個有技術氛圍的團隊,做有前瞻性的技術選型,在業務設計、架構設計、系統架構上下狠功夫。任何團隊內不太爽的工作都是技術總監的責任,比如需求變動太頻繁、技術選型不合理導致問題頻發,團隊沒有定期的技術分享。

技術總監需要負責技術管理體系的建設和維護,對行業技術發展趨勢和管理現狀具有準確的判斷,從技術層面上協助決策層實現戰略目標。所以必須綜合實力很強,既要懂技術,也要懂管理,而且職位越高,所需要的知識面要越廣。

用通俗易懂的話來講:技術總監的工作就是對內就是讓團隊幹活很爽,對外要拼命接住老闆吹過的牛逼。

那麼我們最後來探討一個話題:除過上面三種情況,工作中寫程式碼的技術總監就是好的技術總監,不寫程式碼的技術總監就不是好的技術總監嗎?

答案留給大家,請在評論區告訴我。


*作者簡介:純潔的微笑,一個有故事的程式設計師。曾在網際網路金融,第三方支付公司工作,現為一名自由職業者,和你一起用技術的角度去看這個世界。我的個人微訊號 puresmile2,歡迎大家找我聊天,記錄你我的故事。