如何從技術牛人升階為管理牛人

李攀發表於2015-10-06

所有網際網路公司,包括創業公司,都有不少技術牛人,這些技術牛人的技術棧深度廣度已經達到一定程度,在他們的世界裡,沒有實現不了的需求,也沒有解決不了的問題。

但是,我們卻很少看到在技術和管理兩方面都很出眾的人才。

直接點,技術牛人如何培養自己的管理能力,蛻變為合格的技術管理呢?

也許大家會說這是一個偽命題,因為大部分技術牛人根本不屑去做管理,他們認為管理那些瑣事浪費時間而沒有意義,管理職位是一個無法體現他們價值的職位,他們只想在技術上鑽得更深更廣。

實際上,技術管理並不是一個獨立的職位,技術管理融入在技術研發的每一個階段,例如,任何團隊協作都涉及到任務分工,任何技術團隊都涉及到程式碼規範、合併和管理,這些點滴,都需要有由技術人員而不是專案經理來管理。所以,即時不願意做管理的技術人員,發展到一定階段,多多少少都會涉及到管理的相關內容。

一個技術人員的職業發展過程大致是這樣的:

  • 實習期
    還在學校學習,之前從未涉及過真實工程或專案,實習期間通過閱讀專案程式碼,修復 bug 等開始積累經驗,每天都會覺得自己收穫很大,時間不夠;
  • 應屆畢業
    經驗不多,參考專案其他模組程式碼後,能獨立完成小功能需求,能勝任小模組開發,也能維護專案代;
  • 工作 2-5年
    能勝任任何功能模組開發,並開始做模組設計和系統設計,設計的東西自己能用,做得好也許還能給別人;
  • 工作 5年 以上
    負責整個專案的架構設計,實現專案的基礎和核心模組。

前三個階段的思維方式都是考慮自己怎麼做,怎麼實現功能,怎麼完成任務。到第四個階段,就會開始涉及到管理相關的工作,因為,首先,你的東西再也不是你一個人用的,你需要跟別人講解和溝通;其次,你的架構和核心模組出來以後,你需要把剩下的任務合理分配給合適的成員來開發。


 

我認為,從技術崗位轉型為管理崗位,更多的不是能力的變化,而是思維方式和心態的改變。技術管理者是管理者的一類,管理者三大核心職責如下:

確立團隊目標

不論專案大小,一定要有目標,有目標才能讓所有人明確方向,知道每天工作的意義在哪兒,工作是不是朝著團隊的目標在一步步靠近。 純技術人員的執行者思維應該切換為巨集觀思維,因為現在個人的成功已經不叫成功,團隊成功才是成功,如何讓團隊產出高的績效才是你應該思考的問題。

離達成這個目標我們還缺哪些資源

這點主要涉及到統籌規劃能力。在專案初期,你就需要非常清楚明確地知道目前團隊的能力以及你能調配的資源,這樣才能保證後期不會因為資源不足導致目標無法達成。

我們如何朝著目標邁進

這一點穿插在整個過程中,是最重要,也是我這兩年在聚會玩的團隊管理中看到和親身體會最深的,它囊括了技術管理的方方面面。


如果某件事一個人做需要 m 個工時來完成,那麼 n(n>1)個人來做,理論所需工時是 m/n,但是實際的時間一定比這個多,結果是(m/n)*α(α>1),α就是協作成本。技術管理者要做的,就是儘量降低協作成本,包括以下方面:

  • 任務分配
    之前你一個人能把事情做得很好,現在怎麼保證團隊一群人把它做好?任務分配包括如何把任務合理地分配給適合的人,能達到最好的結果,即人的價值得以體現,產出質量也高。這就要求管理者對任務的瞭解要全面深入,對團隊每個人的能力瞭解也要準確。
  • 全域性觀
    技術人員工作時都需要專注,反過來,作為技術管理人員,要防止過度專注。多去了解專案各方面的進展和存在的問題, 對專案和團隊的任何細節瞭如指掌,出現任何大大小小的問題都能迅速定位和分析解決,不會因為專注於技術細節而失去對全域性控制。
  • 溝通能力
    以前每天和機器溝通,現在切換為和人溝通。以前的桀驁不馴和不屑是因為技術能力強,現在應該切換為更耐心,更注意語氣和用詞的溝通。另外,更多的去主動發現問題,然後通過溝通技巧來解決問題。
  • 協調排程能力
    專案過程中一定會遇到一些無法預期的技術問題導致專案被 block,如果問題已經持續未被解決,這時需要及時排程有能力的人來參與解決,防止專案一直處於不確定狀態。當多個功能或者專案並行進行時,由於人力資源有限,可能需要不斷地根據專案進展來動態調整各專案優先順序來保證整體的進度。優先順序排程和調整是一個很複雜的過程,但記住一點,我們永遠只做優先順序最高的事情,最高優先順序事情完成以後,優先順序第二的事情自然會升級為優先順序最高的事情,在這個升級的過程中,我們也許還需要和產品等相關部門進行一次優先順序動態調整或者評估。這也涉及到專案管理的負反饋,讓每一個階段的結果反饋給新的階段,保證最後的結果更接近我們的目標。
  • 時間管理能力
    時間管理是每個團隊都頭疼的事情,直接體現在專案進度上。時間管理看起來很難,實際很簡單。每個任務拆分一定要足夠細可量化,2 天以上的任務都是不合理的。而且過程中需要嚴格控制好每一個量化好的時間節點或里程碑,保證每個節點的質量和時間點無誤是保證最終結果的最好方式,出現任何一處 delay 都需要強制想辦法及時補救,避免積少成多,這樣才能防止專案最後出現不可能預期的延期。
  • 放權和培養
    親自去解決具體的技術問題,做程式碼稽核看程式碼哪些地方存在不規範,和測試人員討論具體的測試用例是否合理,這些工作現在需要做,但是,它們已經不再是你關注的重點,你應該更多的放權讓其他人去做,在這個過程中一定不需事事親為,在這基礎上,你應該更加註重對成員的培養,培養他們的學習能力,思考能力和解決問題的能力(這三個能力是我對技術人員的基本要求),讓成員快速進步和成長,獨當一面。
  • 傾聽
    不管以前技術多牛,多恃才放曠和桀驁不馴,作為管理者,需要揹負團隊的使命和績效,所以應該在任何時候主動聽取團隊核心成員的意見,做一個好的傾聽者。傾聽一定要做到多維度聽取,然後再分析和做決定。

能做到並實踐好上面這些點,恭喜你已經蛻變成為了一個優秀的技術管理人員。

相關文章