天天看點

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

從市值上看,阿裡已經雄踞BATM之首,是毫無争議的老大,除了市值之外,同樣被大家津津樂道的是,阿裡員工的高額工資、大把股票。是以,一直很好奇,在阿裡做一名Tech Leader,是一種什麼樣的體驗?

2019AS大會上,聽了阿裡進階技術專家--孔凡勇(雲狄)的分享:《細說Tech Leader在開發團隊的核心職責》,終于解答了我的疑問,并且明白了阿裡為何這麼值錢。

01 分享大綱

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

雲狄的分享涵蓋了阿裡技術經理日常工作,包括:開發規範、流程規範、技術規劃、團隊建設與管理、團隊文化、溝通與輔導、招聘與解雇。

可以說,是一份“網際網路技術經理工作最佳實踐”,供大家借鑒。

02 開發規範--協作流程

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

從項目開發流程上看,阿裡遵循的是靈活開發模式,超大型項目用的是Scrum of Scrums管理模式,以應對快速變化的市場。

項目的幾個主要的環節是:項目啟動、需求階段、設計階段、研發階段、項目傳遞。

這裡要關注下傳遞物,MRD、PRD、詳細設計、測試文檔等。

評審環節,也是阿裡做得比較細的:互動評審、視覺評審、用例評審、架構評審、代碼評審、釋出計劃評審。不見得都需要,自已根據團隊薄弱的地方重點抓吧。

03 開發規範--規範之目的

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

項目做久了都知道,所謂的BUG,都是開發出來的(程式員先放下磚頭,好好想想這句話有沒有道理)。如果你的團隊有品質問題,首先要從開發環節去解決,而不是往死裡折騰測試妹子,那方向就偏了。

04 開發規範--配置規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

以JAVA開發為例,開發團隊要統一家配置規範,包括IDE、maven、git、各種環境參數等。這些配置都放在WIKI上,友善新來的同學看。

05 開發規範--命名規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

開發規範裡,包、類、接口都要按規範來命名,不要整些半土半洋,隻有你自已了解的命名。阿裡之前出過一個JAVA編碼規範,大家可以參考。

06 開發規範--API規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

現在主流架構是前後端分離、微服務架構。是以,API規範尤其重要,版本的相容性、錯誤碼的規則、鑒權方式、資料脫敏、設計API時的防重、幂等性問題要考慮到。

07 開發規範--異常處理規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

好的程式,必定有好的異常處理機制,重試機制、逾時的處理、極端情況下的熔斷機制、降級機制。

不要小看這些“雕蟲小技”,比如重試,如果沒有一個好的重試設計,在對方接口調不通的時候,調用端不做控制,頻繁重試,這不亞于一次DDOS攻擊,整個服務會被壓垮。

08 開發規範--分支開發規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

分支管理同樣要遵守約定,什麼時候用雙主幹、什麼時候鎖分支,誰來負責分支的管理,緊急版本用主幹還是分支來發版,要根據實際情況來制定标準。

09 開發規範--代碼commit規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

commit的辨別要統一,如:feat : 新功能;fix : 修複bug;docs : 文檔改變;style : 代碼格式改變;refactor : 某個已有功能重構;perf : 性能優化;test : 增加測試。

可以結合IDE插件來實作。

10 開發規範--日志規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

日志輸出也要相應的規範,通常公司的開發架構裡都會內建日志處理子產品,在編碼的時候按規範調用,禁止用System.out/error來輸出日志。上線後有統一的配置中心來控制日志的輸出。

11 開發規範--MySQL開發規範

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

背景開發饒不開mysql,在開發過程中,建表的規範,索引使用和優化,SQL語句的内聯、外聯,好的SQL習慣要養成。

12 開發規範--統一工具與架構

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

常用的工具封裝,如http連接配接、ORM、檔案讀寫。

分布式基礎元件的使用,不要每個人自已實作,尤其是鎖、限流機制等,使用不當很容易造成線上事故,而且不好查。

13 需求管理

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

需求要有治理機制,要根據對主營業務的貢獻度來衡量價值,而不是哪位老闆的聲音大,需求要評出ABC等級,根據等級安排資源。

14 架構評審--架構設計的目标

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

架構評審的原則:合适原則、簡單原則、演化原則,“剛好夠用”也許是最“完美”的方案。

架構評審,要兼顧功能需求、非功能需求。

15 代碼評審

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

代碼評審,不要流于形式,不要變成批鬥會,或是華山論劍,比誰的技術niublity。

目标是找出設計和實作時遺漏的地方,幫助開發人員成長。

16 釋出計劃評審

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

對比較大的版本發版,要做釋出計劃評審,要有外部依賴檢查、配置确認、二方庫與應用釋出順序、資料訂正和變更、復原計劃、線上回歸冒煙等。

17 技術規劃

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

作為技術經理,要做團隊的技術規劃,如每周、每半年。

平時的技術運維要關注:系統名額、慢接口、慢查詢、錯誤日志等等,從小處發現改進的點,盡早防範。

18 團隊建設與管理

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

同時,技術經理還要進行團隊建設和管理。依據團隊不同階段,分為集權式管理、放權式管理。

19 團隊管理與激勵

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

團隊管理,分成“管”和“理”。

初級員工要“管”,設定目标、給與輔導,手把手幫助員工提升能力。

資深員工要“理”,給以空間,設定目标,幫助協調資源,有兜底方案,讓員工自由發揮。

20 團隊文化塑造

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

團隊文化可以建立在公司大的文化架構之下,形成一個支文化。阿裡是非常強文化的公司,是以團隊文化建設會相對容易些,畢竟能進阿裡的,價值觀都是比較match的。

21 溝通與輔導--1on1溝通

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

1on1是非常重要的溝通方法,尤其跟員工進行輔導的時候。

遵循3分講7分聽的原則,關注個人工作、個人成長、團隊、公司四個方面。

要提好的問題,比如:

你對近期工作滿意嗎?為什麼?

現在做的事情,跟你的發展方向是一緻的嗎?

團隊員你最佩服誰?為什麼?

你對公司戰略有什麼不清楚的嗎?

22 團隊招聘

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

招聘的第一責任人是開發經理,而不是HR,HR隻是幫助你達到招聘目标。

人才選拔要關注:專業能力、溝通、責任心、是否靠譜、價值觀等。不要隻看技術,别忘了這個人進來是要跟人打交道的,要綜合考量。

23 員工解雇

在阿裡做一名Tech Leader,是一種什麼樣的體驗?

要幫助員工成長,一旦發現員工不适合公司,要立刻進行處理,就是所謂的心要仁慈,刀要快。

管理者的職責是:定出高目标,帶領團隊共同前進,把團隊從愚昧之巅推向絕望之谷,幫助團隊成員走上開悟之坡。

24 寫在末尾的話

從阿裡一線Tech Leader的日常工作,我們看到了:技術與業務的深度融合、技術細節上的每日精進、團隊管理的抓大放小管細、文化價值觀的高度比對。

研究一家公司,很重要的一點,就是看一線經理的精神面貌,以小見大。現在你知道阿裡為什麼這麼值錢了吧?