原創 公司各個階段 CTO 需要做什麼?(下篇)

2022-02-19 13:02:48 字數 4732 閱讀 3009

假設乙個公司發展有以下幾個階段:

0.5到1的階段

公司經過了初創階段,產品也已經上線執行。接下來產品需要高速、高質量迭代,作為技術管理者需要把各方面都規範起來。

管理需要標準化

建立專案管理流程:

建立溝通匯報流程:

績效管理:

績效管理如何來做,選擇 okr 還是 kpi ?大家有太多討論和不同意見。在 tgo 鯤鵬會的小組活動中,我們組員也經常會針對這個話題討論,每乙個公司都有不同的做法,這和公司層面的文化、背景、專案屬性、甚至是管理層的性格都有關係,無法完全照搬別人的做法。

我認為乙個相對成熟的公司,適合公司的績效管理方式必不可少,需要不斷探索。一般而言,考核是用來激勵那些不太優秀的人,特別優秀的人才無論如何考核,他們永遠都是是衝在最前面的一批人。但是,任何公司都不可能做到 100% 的員工都有合夥人的心態和衝勁,也不可能 100% 的員工都是世界一流人才。所以,幫助所有員工建立清晰的目標並且進行回顧和考核非常重要,要讓所有人的目標都是清晰、具體且正確的。

技術需要標準化

各個環境標準化:

建立技術標準規範:

建立監控管理制度:

1+ 的高速發展階段

隨著業務規模的擴大,很可能有了多條產品線;隨著團隊規模的擴大,徹底扁平化的組織架構可能無法滿足需要;隨著訪問量的增大,對技術和架構的要求也越來越多。這種情況,不管是對技術的要求還是對管理的要求都更上一層樓,這個時候需要在標準的基礎上再做一些管理和組織結構的演進,站在更高的角度管理去思考。(這個時候做一些細枝末節的工作對於整體的意義就不大了)。

技術方面的昇華

隨著公司的發展,產品要麼形態豐富,各種產品和業務衍生出來,要麼產品形態不變,訪問量急劇增大。對於前者,管理方面很容易犯的乙個錯誤就是簡單的進行業務線的拆分和招人、招人、招人,形成 n*20 個這樣的團隊,每乙個團隊之間相對獨立,技術沒有沉澱。對於後者,很容易犯的錯誤是通過堆伺服器和堆運維來抵擋壓力的上公升,導致技術架構老舊問題增多。這種粗曠風格的團隊擴張是不太健康的,更好的方法還是多折騰:

我的建議是通過進行技術和組織架構的調整,形成專才,形成縱向技術線,把通用技術提煉出來,讓整個公司都可以積累統一的、能夠向前發展的技術平台;

強制通過自動化手段把人解放出來,人應該去做創造性的工作;

消除團隊安逸的狀態,讓團隊或業務線之間形成競爭,保持衝勁。

組織架構調整

隨著業務規模的擴大,團隊規模也在擴大,僅僅對業務線的技術團隊進行橫向拆分( x 維度拆分 )還不夠,還需要有專門的垂直團隊服務於橫向的業務團隊。通過建立架構、中介軟體、運維等垂直團隊服務於所有業務團隊,確保技術和架構的統一( y 維度拆分 )。

如果團隊人數超過 20 不足 50 ,我們需要增加經理層來管理一線員工,變為三層架構,如果人數超過 50 不足 100 ,我們需要增加高階經理來管理經理,變為四層架構( z 維度拆分 )。當然,可能還會形成一些虛擬的或實際的技術或專案管理委員會,對技術人員的發展、技術的標準化、公司層面的技術大任務進行定義和協調。

補充以下幾點:

隨著層級的增多,管理者對於一線員工的觸達會越來越難,可能導致執行效率降低。這個時候,對下屬主管的任用和管理非常重要。與管理一線員工相同的是,主管也需要績效考核和標準,不同的是,主管們承擔了管理職務,一線員工是由他們直接管理和影響的,此時對於主管的培養非常重要。不僅僅要讓他們使用 cto 原先定的標準和套路來管理,更多的是讓主管明確意識到自己的管理職責,激發出他們自己的管理風格;

在確保主管被充分授權,並且有團隊管理自治性的同時,最好提供乙個通道,讓一線員工有機會表現和表達自己的想法,讓高層管理者可以了解到任何一名員工的想法,保持公正透明;

在公司這個階段,可以和人事一起把人員的職級要求和薪資標準進行統一定義,要和績效考核結合起來,形成固定週期的職級調整方案,形成明確的上公升通道。讓每一位成員意識到只要通過自己的努力,在公司內部同樣可以走的很遠;

業務團隊和平台架構團隊的目標使命不同,會存在一些矛盾存在。作為 cto 要做好引導,讓業務團隊認識到架構統一的重要性,讓架構團隊認識到業務團隊的壓力。也可以鼓勵團隊之間的人員換崗以及做一些技術團隊的培訓,讓架構團隊理解業務,讓業務團隊深挖技術。

建立文化

人畢竟是社會動物,是有感情的,如果公司所有的管理手段都是硬手段,員工很難從內心認可。我們可以和 hrbp 配合,打造有團隊特色的技術文化。比如,分享文化、開源文化、學習文化、鼓勵自動化的文化等。

建立價值觀

一般而言公司層面會提煉出 3 - 5 項重要的價值觀,技術團隊也可以在此基礎上細化、提煉技術方面的價值觀,並納入考核。

個人認為價值觀一方面可以給我們定乙個大方向,比如,我們需要怎麼樣的人;另一方面又類似於心理暗示,潛移默化的影響每一位員工。慢慢地,員工會演變為符合公司價值觀的人(變得和公司有「夫妻相」),或者意識到無法適應價值觀而主動離職。比如,如果可以定義一專多能、主動承擔、勇於創新、言出必行作為技術團隊的價值觀,並且展開列出一些子項納入考核。即使員工的業務能力沒問題,但日常的表現不符合價值觀,那麼他只能是乙個過客,無法和公司一起發展,這也是為什麼很多大公司如此強調價值觀的原因。

團隊規模小的時候,我們只要自己衝在前線就可以很好的管理團隊,在規模中等的時候我們可以利用一些標準和制度進行管理,在規模更大了以後,我們需要更高維度的文化價值觀等手段來感染到每乙個員工,讓員工認同公司,這比約束命令式管理更有效。

處於這個階段的公司,cto 不僅要做好對內的管理工作,還要抽出時間做一些對外的工作,來幫助公司做品牌宣傳,並且用技術爭取更好的資源,比如,定期和同行以及投資人交流,組織參與一些技術討論,跟進行業趨勢等。

最後,想聊聊技術如何服務於公司戰略?

就我個人而言,我覺得兩點很重要,一是堅持,二是應變,三是要思考。圍繞這幾點,我列了一些技術服務公司戰略的要點。

產品技術部門最基礎的職責

作為產品技術團隊,最本職的工作還是持續高效輸出高質量、高可靠的產品,滿足公司的業務需要。並且在不斷提高可用性的同時,通過自動化、標準化提高效率,節省人力成本。在組織規模變大了以後,還能通過管理手段來保持團隊的高效。隨著業務和團隊規模擴大,做到這幾點並不容易,但這只是技術服務於公司戰略的基本要求。

以技術創新把不可能變為可能

舉個例子,有一次,業務給我提了乙個需求,因為受到底層外部介面的限制,這個需求無法實現。但是業務表示,為什麼別的公司可以實現,我們就不行。這時候,我才花時間去認真思考是否有一些突破的辦法,嘗試找到別人的實現方式,最後想到了可以繞開限制的方式,把這個專案實現了。我沒想到的是,專案上線後業務告知當時問錯了,其實別人也無法實現這個東西,因為只有我們實現了這個技術,所以很多人都願意來找我們合作。

很多時候,我會認為自己有十幾年的技術研發經驗,我對公司既有技術足夠理解,我以為我可以對一件事情是否可以實現很快下結論。其實這是不對的,在收到外部需求的時候,應該反過來思考,先假設這個需求是必須實現的,或者競品已經實現了的,在拒絕別人之前,給自己幾天時間,給團隊幾天時間來想一下怎麼去實現,如果你做到了別人做不到的,那麼你的技術就是核心競爭力。

建立一支可以打快戰的鐵軍技術團隊

隨著公司技術的標準化和成熟,團隊應該 具有打快戰的能力,但是穩定的業務往往會讓老兵們進入溫水煮青蛙的狀態。作為技術管理者,應該用各種手段來激勵大家的鬥志(比如搞階段性的重構、黑客馬拉松比賽),保持團隊的活力。這樣,如果有新開闢的專案,可以在公司內部輕鬆找到並形成一支敢死隊來參與戰鬥,超高的執行力使得新業務可以盡快進行低成本試錯或搶占市場,這也是技術產品團隊成熟於否的體現。

根據戰略及時調整團隊架構和技術架構

不管是團隊架構還是技術架構應該有一定時間的先行,一般而言對於線性發展的專案,公司目前如果處於 a 量級的 pv ,就應該開始儲備十倍 a 量級 pv 的架構。根據業務的發展估算技術架構的挑戰,提前半年或者一年進行新一代架構方案的確立,確保技術不拖業務後腿。團隊架構也是同樣需要先定義骨架,再在每乙個可能的職位上進行填坑招聘。技術管理者需要對公司的戰略敏感,根據公司的發展和戰略,提前做好這兩個架構調整的準備,並在需要的時候及時應用調整。

提煉核心技術,產品化產品,探索進行產品輸出的可能

如果做的是 2c 的產品,在乙個領域做了多年或許就有能力把核心技術或產品提煉出一套 2b 或 saas 的產品來賣,如果成功,這就不僅僅是乙個 2c 的產品,很可能又多出一套 2b 的產品甚至是一套 2c 的平台。如果做的是 2b 的產品,或許就要思考一下,現在的產品是複製貼上的定製化產品還是完全配置的產品化產品,如果不是,怎麼讓他更通用地進行產品化,減少人力成本。產品化平台化的過程是乙個痛苦的抽象過程,對技術的要求更高,不過一旦實現就可以讓公司的使用者和規模得到爆發式發展,真正的技術改變戰略。

關注前沿技術,思考前沿技術和公司業務的結合

目前正處在技術變革的乙個關鍵階段,在未來 5 年內,垂直細分的 ai 將會變得成熟,區塊鏈也可能會出現大量的實際應用,技術管理者應該時刻關注這些技術,不斷思考可能的結合場景。這個世上不缺愛思考的人,但很多懂業務的人不懂技術,懂技術的人又不能理解業務痛點,只要積極關注前沿技術並和業務專家保持討論溝通,說不定哪天就會碰撞出具有革命性的產品。

- end -

c 各個階段解釋

由多個原始檔組成的c程式,經過編輯 預處理 編譯,鏈結等階段會生成最終的可執行程式。下面哪個階段可以發現被呼叫的函式未定義?a 預處理 b 編譯 c 鏈結 d 執行 a 預處理是 c語言程式從源 變成可執行程式的第一步,主要是 c語言編譯器對各種預處理命令進行處理,包括標頭檔案的包含 巨集定義的擴充...

公司面試 原創

深圳中電電力筆試題 專業知識 1.寫乙個任意排序演算法,用流程圖,語言任意.2.值型別與引用型別的區別,舉例 3.override與 overload的區別 4.什麼情況下使用虛方法,它與介面有什麼區別?5.人機介面設計的需要考慮哪些方面,有哪些原則 6.怎麼理解靜態變數?長沙戶政管理中心面試 1....

各個公司面試總結

1 對於hadoop集群的運維是弱項 2 對於各種工具的使用是弱項。3 還要繼續努力,不多說了,看書去吧。4 hive spark sql phoenix 的sql語句是弱項啊 1 hive的 各種儲存格式 2 hive的分組topk 3 hive的udf udaf 等等區別,寫法 4 flume的...