我 1998 年畢業(yè),,至今工作了將近 20 年的時間,。我寫了很多年程序,在早期編程的時候,,我的領導覺得我是一個適合做團隊管理和協調的人,,因此我做了很多年的技術團隊管理工作。 今天有這樣的機會來跟大家做一個 CTO 如何打造優(yōu)秀技術團隊的分享,。 優(yōu)秀的 CTO 需要必備什么樣的素質,? 技術團隊,,一般來說就是分成兩個因素,一個是人,,一個是技術,。 從人的角度來說,很多程序員的終極夢想就是成為 CTO,。非技術人員創(chuàng)業(yè),,會發(fā)出這樣的感慨,我們就差一個 CTO了,。仿佛他做了一個很好的創(chuàng)意,,只要有一個 CTO 就能把這個創(chuàng)意實現,然后就會占據某一個市場份額的多少多少,,最終獲得成功,。 但是實際上,CTO 不能解決所有問題,。我覺得 CTO 是一個很寬泛的概念,,CTO 應該具備這樣的一些特色:
所以,,一個公司對 CTO 的要求非常高,,既要具備良好的技術前瞻性,,又要判斷什么時候引入什么樣的技術;然后要懂業(yè)務,,要能夠管理團隊,,要懂得人性。 我覺得這是一個過程,,每個人可能都有一個 CTO 的夢想,,但是到底能不能成為 CTO 呢?我覺得比較現實的目標是先讓自己成為一個技術領導者,。 成為一個技術的領導者后,,你會產生很多的困惑,好比我之前做技術寫代碼,,感覺自己做的很好,,很自信,因為我的技術能力很強,。 最后公司可能會賦予你一個管理職責,,但是在這個轉型過程中,你會有很多的困惑就是:我怎么去發(fā)揮我的技術優(yōu)勢,?怎么去管理別人,?怎么讓團隊的績效和我個人的績效融合到一起? 成為 CTO 必經的四個階段 我把技術領導之路總結了四個階段:野蠻生長,、分組而治,、救火隊員、無為而治,。 野蠻生長 一開始,,你帶一個很小的團隊,在這個團隊里你表現很出色,,也有一定的溝通能力,,你就會被委以小任去管理這個小團隊。 這個時候基本上你就是這個小組的組長,,然后你的技術也很強,,所以你會承擔一些培訓新人,、去和其他組去做溝通的工作,。實際上這個管理起來比較容易,而且你的核心能力可能還是體現在編程上,。 在這個小組內,,你的編程水平,包括你的代碼量都會保持一個很高的水準,,我覺得這是一個野蠻生長的階段,,不需要太多的管理,。 分組而治 在一個小組里面,你做的很出色,,公司就會給你更多的工作,,讓你承擔更多責任。有的時候,,一個出色的程序員可能可以頂十個程序員,。 當然這也是在管理過程中,要避免的,,就是有時候在一個公司如果某個人特別出色,,公司就會給他更多任務,不僅累得半死,,而且工資績效也沒有相應的提升,。 比如說你管理團隊的十幾個人,這時候你可以做的事情就是把這個團隊分成兩個小組,。管理上有一個原則,,就是一個人最多只能直接面對七到十個人。 如果你已經管理二十多個人,,這時候你就要把它拆組,,因為你不可能直接面對這么多人,而且還要跟他們去做交流,,去規(guī)劃這么多人的工作,。 這個時候,你可以把整個團隊分成兩個小組,,你自己帶其中一個組,,然后你再提拔一個組長帶另一個組。接下來你的工作,,就是給自己組成員分配工作,,然后定期和第二組的組長進行溝通,保證整個組的運作方向是沒有問題的,。 救火隊員 當你管理的人員更多的時候,,即管理的人員到了幾十個那么多。 在初期會有一個演化過程,,一般你會自己帶一個組,,你在這個組里面還是編程,管理這個組的任務,,然后你可能會再設其他的三四個小組,,你自己去面對三四個小組的組長在一塊兒去溝通工作。 在發(fā)展的過程中,,你會發(fā)現你已經沒有精力去管理自己的組,。最終你就開始直接面對各個組的組長,,你不再去承擔一個組的領導任務的時候,那你可能是一個部門經理了,。 這時候你可能要管理四五個組,,直接面對四五個領導。但是你仍然是對公司的技術體系最為熟悉的一個人,,因為整個的公司技術體系,,你是從一個小兵開始建設起來的。 我覺得這個階段,,你就是去當一個救火隊員,,你要幫助下面幾個組的領導,去搞定他們的工作,。 無為而治 這個階段基本上就是到了研發(fā)總裁或者是 CTO 這個職位,。 你已經不再關注自己的技術是不是公司里最強的,你的技術能力和你的管理能力等等已經融合在一起,。 你會去關注一些更大的層面,,公司未來的技術是什么?整個互聯網未來的技術是什么,?我們要在新方向去做哪些投入,?你可能會和CEO去溝通這些問題。 在這個階段,,你需要為整個部門或者為整個公司的技術定出方向或規(guī)則,,然后讓這些優(yōu)秀的技術人員,在這個規(guī)則和方向里面,,去發(fā)揮自己的聰明才智,。 實際上,如果未來你成為一個公司的領軍人物,,我覺得很多時候,,我們需要思考的問題,不是我們做的太少了,,而是我們管得太多了,? 到現在這個時代,我覺得每一個人的聰明才智都是可以發(fā)揮出來,。我們不一定非要把所有的事情都規(guī)劃好,,然后去讓他們做一個執(zhí)行的人。 如果你成長到這樣一個階段,,我覺得就要注意去發(fā)揮更多聰明人的力量,,并不是僅僅靠你自己的力量,,因為你不是最聰明的,,你可能只是對全局的把握,、對整個的走向會更了解一些而已。 CTO 如何組建技術團隊,? 組建團隊,,實際上要有兩種方式:一種方式就是從頭開始做,另一種方式就是空降,。 從頭開始做 從第一個人開始招,,我覺得這實際上對于我們個人能力和團隊的穩(wěn)定性是一個非常大的考驗。這樣的團隊,,如果把它建立起來以后,,實際上是非常穩(wěn)定的。每個人都是你的兄弟,,是從戰(zhàn)火里廝殺出來的伙伴,。 針對這種情況:到了團隊里面,你會覺得整個團隊的氣氛非常腐爛,,或者每個人都說,,你為什么要來這個公司?然后說誰誰都走了,,你怎么還不走,?彌漫著這樣的公司氛圍,你就會有這樣的想法,,公司為什么不給我漲工資,? 如果你到了一個好的團隊,你會發(fā)現團隊的管理者雖然走了,,但是大家還是非常堅定,,希望在這個公司做一些事情。 我建議的處理方式就是:對公司充滿抱怨的人,,就迅速讓他離職,,然后把公司現有的技術資產保護好,讓原先的那些有價值的技術能夠繼續(xù)發(fā)揮作用,。 面對消極的員工,,如果他覺得公司不好,或者說他去意已決,,讓這樣的人盡早離開,。把這樣的人清理走了以后,迅速重建團隊,,這樣團隊就會鮮活起來,。 空降 空降會面臨兩種情況,一種是團隊已經很差了,就是一個爛攤子,,需要你來解決問題,。還有一種,就是這個團隊很優(yōu)秀,,你的前任由于其他種種的原因離開了這個公司,,所以需要一個帶頭人,來把整個團隊帶起來,。 針對這種情況:你會發(fā)現這個團隊本身精神面貌很好,,但是因為你的前任走了,組員會有一點失落,,或者說覺得公司不受重視等等這樣一種情況,。 這時候,團隊一般會保留很好的機制,,對于團隊的技術語言,、技術的選型,包括團隊的組織,,都會是一個比較完整的情況,。 這種情況下,最不應該做的事情就是新官上任三把火,,把團隊的機制按照你自己的思路重新打造,,包括去用你自己熟悉的技術戰(zhàn)略去改造整個公司的產品,我覺得這都是非常忌諱的事情,。 因為作為一個技術管理者,,大家都喜歡用自己特別熟悉的技術,我覺得這是每個人的人之常情,。但是做到一個優(yōu)秀的技術領導,,應該把胸懷放更開一點。 如果這個團隊很優(yōu)秀,,他們用的技術戰(zhàn)略你不熟悉,,那你可以學,你不一定要去強制別人改變,。 實際上在遇到這樣的團隊的話:你只要保留他原來的機制,,再逐漸根據公司的發(fā)展去調整。對于原有的技術戰(zhàn)略也是一樣的,,缺少哪些,,你就補哪些,而不是去斷掉他的根本,。 從技術的角度分析團隊建設 對于一個公司,,尤其是對于一個創(chuàng)業(yè)公司來說,,我覺得用好當下的這些技術,就是最好的選擇,。 作為程序員,,我們有時候會忍不住去追求一些新的技術。因為你會覺得一些新的技術出來以后,,如果不懂,,跟別人交流你都會覺得低人一等,,然后就會特別恐慌,。 實際上,很多時候我們去追逐各種各樣的新的東西,,是為了消除我們自己的焦慮感,。 但是在一個公司里面,尤其是一個創(chuàng)業(yè)公司,,你最終要實現的就是公司的盈利,,公司就是要賺錢,要用戶,,所以用什么樣的技術能解決當下的問題,,我們就用什么樣的技術。 對于創(chuàng)業(yè)公司來說,,用好當下的技術,,我覺得是一個最好的選擇。當然成長過程中,,你需要做一些新的規(guī)劃,。你要去尋找新的方向,就不局限于一個原則,。 技術最重要的是支撐現有的業(yè)務發(fā)展,。技術一定要驅動業(yè)務,最終用業(yè)務來賺錢,,或者是找到足夠多的用戶,。我覺得這是一個技術人員要非常明確的一點。 推送系統 每一個手機廠商都會有推送系統,。比如說我們可以按照用戶畫像,,給用戶去做推送,可以推送實時的消息,,手機在線的時候,,用戶接收到這個消息。 如果沒有接收到,,這個消息就損失掉了,。還可以推送離線消息,只要手機上線,就能收到消息,,但是,,這個消息可能只會在消息端保持一天或者兩天等等。推送的精準度可以達到 99.99% 以上,。 規(guī)劃產品 一定要有長遠的打算,,現在,在一個迭代里面,,多長算長呢,? 不管是創(chuàng)業(yè)公司,還是成長中的創(chuàng)業(yè)公司,,我覺得一年到兩年的時間,,就可以了。因為你會發(fā)現,,你規(guī)劃產品,,可能還沒做完,你的公司就已經死掉了,,這是非常有可能的,。 所以,這個產品一定要有規(guī)劃,,然后在迭代的過程中不斷去修正它,。實際上,我們基本上很難規(guī)劃出三年以外的產品,,因為這個世界變化實在是太快了,。 比如三年以后,VR 會發(fā)展成一個什么樣的樣子,,會不會取代手機等等,?我覺得這是不可預知的一個事情。 好的成熟的技術,,要盡快引入,。追求新的技術和求穩(wěn)之間要有一個平衡。同類型的技術,,在不同的應用場景下的使用,。 要重構代碼,而不是重寫代碼,。程序員最喜歡重寫代碼了,,因為重構總是會耗費我們更多的精力,但是哪一個更值得,? 我覺得大部分的時候,,我們去重構代碼,,更有利于我們自己產品的迭代。因為一旦重寫完了以后,,會發(fā)生什么樣的事情,? 這一點我們是不太知道的。而且對于程序員而言,,他就像一個詩人,,或者像是一個作家,文章永遠是自己的好,,代碼永遠是自己寫的好,。然后在沒有代碼的時候,總是會覺得別人的代碼比較爛,。 而且我們自己本身也在進步,,在進步的過程中,,我們自己的代碼質量也會提高,。 有一次我在部門里面,有一個程序員跑過來說這個代碼寫的太爛了,,他必須要重寫,,你不讓他重寫,他會給你拼了,。我說這代碼誰寫的,,然后往上翻一看,是他自己半年前寫的一個代碼,,最后,,他說那要不我們重構一下吧。 所以,,這個是需要程序員自己去考慮的一件事情,。實際上在重寫完之后,需要大量的測試,,如果你的接口有變化,,需要大量的測試才能滿足系統的穩(wěn)定性。 要把變化集中在某一個領域,,而不是散落在系統的各個地方,,這是架構師的一個原則。 CTO 管理工作中的三個原則 最后再跟大家分享三個原則,,這是我自己工作中常常會遇到的三個原則:閉環(huán)原則,、誰難受,誰推進原則,、Think Bigger原則,。 閉環(huán)原則 作為一個管理者,,這是非常重要的。你應該起到上傳下達的作用,,你要讓上面的人知道你要去做什么,,然后也要讓你的下級知道你正在做什么。如果是做一個普通的程序員,,或者是個執(zhí)行者,,我覺得這一點也非常重要。 這個說起來是一件很容易的事情,,但是在過程中,,你發(fā)現能做到這一點的人,非常的少,,你可能要不斷的訓練他,,他才會做到這一點。 比如說你開一個周會,,開完周會以后,,你發(fā)現有四件事情要做,本來你寫了一封郵件,,第一件事情誰應該負責,,第二件事情誰應該負責,第三件事情誰應該負責,,第四件事情誰負責,,然后你抄給所有的參會人員。 但是到下次開會的時候,,你發(fā)現這四件事情中有三件事沒有人給你反饋,,有可能是做了,有可能是完全沒做,。我覺得程序員有時候都不太喜歡反饋,,要做一個事情他默默的就給你做了,然后也不告訴你做沒做,,永遠是這樣,。 但是反饋這件事,其實是非常重要的,,如果有這樣的一個反饋的話,,你會完全的形成閉環(huán),你會知道自己的進度,。 尤其是當這個閉環(huán)還要往外延伸一下的時候,,還可以延伸到產品上面。你做了一個產品,,你把這個產品扔到市場上去,,誰來給你反饋,,這個市場的反映是什么?我覺得這也是需要大家考慮的一個問題,。 實際上,,一個好的產品,扔出去之后應該有自己的數據感知能力,,用戶喜歡哪些功能,,用戶不喜歡哪些功能,日活躍量是多少,,然后對你的用戶很多行為的統計等等,。 這是需要產品數據經理,能夠拿到這些用戶的反饋,,然后根據自己的感覺去判斷,,哪個功能應該加強,哪個功能應該減弱,,這是產品的閉環(huán),。 如果你希望你的產品扔到社會上去,或者扔到市場上去,,它就會自己成長,,這是很難做到的,。除非是那種百年難遇的產品,,比如說微信。 誰難受,,誰推進原則 在組織里面,,經常會有一些跨部門的合作。這些跨部門的合作,,往往是因為公司的一個空白的區(qū)域,,大家好像都覺得是對方的事情。 但事實上,,應該有一個組織者,,就是有一個牽頭的人,但是我們不能只是去等牽頭的人去推動進度,,因為他推動起來可能也會比較麻煩,。 就舉一個最簡單的例子:比如說,我們的發(fā)布會,。在發(fā)布會之前,,我們一般是需要把所有的產品,包括產品的銷售模式,、產品特性,,還有一系列資料全部都做好,。 在上線的過程中,你會發(fā)現產品的特性設計頁面總是沒給出來,,那作為技術人員你應該不斷地促使設計者盡快地把這個設計提交給我,。如果你16號要發(fā)布產品了,那在15號,,把這些設計稿給你,,誰最難受? 設計同事已經完成任務了,,那肯定是這些前端程序員特別難受,,因為他只有一天的時間要把這個頁面上線,所以他們就要不斷地催促,。 所以這個原則就是:如果你覺得這件事情不做的話,,你會特別難受,那你就應該去主動推進它,。這樣的話對整個團隊合作,,或者說對于把整個事情做成,是非常有價值的。但是你主動推進的過程中,,這個流程慢慢地可能就會變得合理,。 Think Bigger 原則 這是我想的一個詞,大概的意思就是從大處著眼,、小處著手。就是有時候我們做一個事情,,眼光會特別淺的時候,,就會看不到一個事情未來的發(fā)展。 無論是你寫需求也好,,編程也好,,或者在一個公司創(chuàng)業(yè)也好,我覺得再往大里說,,就是一個公司的創(chuàng)見,,就是創(chuàng)業(yè)的見解。你有一個偉大的想法,,能夠鼓舞著你自己和你團隊的人,,去往前走。 這是非常重要的,,如果這個想法有缺失的話,,就會造成我只是來這兒掙一份工資,你并不會和你的團隊共同成長,。然后你的團隊有任何的風吹草動,,你可能就會離開,,會找一份更高工資的工作。 所以,,我希望每個人都能夠在自己的崗位上往大方面去想一想,,在這個崗位,如果你的部門能拓展到五十人,,你會去做什么事情,。 如果你的用戶擴展到了五千萬,你能做什么樣的事情,,我覺得這是需要大家在埋頭趕路的過程中,,思考的一些問題。 作者:池建強 |
|
來自: jackeyqing > 《項目管理》