技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

李CHENGXI發表於2019-02-25

原文地址

2018年暑假,有幸參加了首次騰訊 SNG MINI 專案 的改版試驗——導師制 + 定向命題。MINI 專案是在短時間內通過組隊、設計並獨立完成一個完整產品的培訓專案,我覺得除了能通過實習生的實踐來驗證最近做的技術專案之外,還深感這還是一次獨立帶隊的好機會,於是欣然答應。

出題與組隊

以往的 MINI 專案都是由新人們自主想題目,這次是由各位導師預先根據自身任務或者專案,讓新人來選擇。雖然這次參與,有業務壓力在身,但考慮到MINI專案本身的性質,以及希望童鞋都是帶著興趣來的,因此還是花了不少心血認真選材出題。

對所選組的要求是使用最近即將推出的與小程式相關的技術,並可以做出一個準上線級別的小程式。除了這點限制,可以在產品方向上做些發揮。

為了更好地完成任務,必須吸引優秀的人才。吸引人才無非三方面:錢、理想、興趣。MINI專案不談錢也不談理想,興趣便是首要吸引人才的關鍵。因此產品上,我初步設計了 toB 和 toC 的業務,涵蓋兩至三個方向的產品。除了可以從不同產品形態檢閱騰訊雲的技術,也能多給童鞋選擇,招攬更多人才。

下圖是我制定的兩個產品方向,一個是比較實用的家庭相簿,一個是緊追熱點的偶像粉絲小程式。

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

待所有導師的產品方案都出來之後,發現其他導師大部份的出題是 toB 的或者是技術類專案,我初步估計可能由於我的選題較豐富,能吸引不少人才。

MINI 專案啟動會當天,幾大選題講完之後,報名參加我這邊命題的人數遠超我的預期。一堆人將我團團圍住。可能由於出乎意料以及缺乏經驗,在選人的環節處理得不太好。我採用了逐個微信加的辦法,然後按順序篩選,這導致後面分組有些混亂。

image

後來回顧經負責專案的HR提點,應該讓所有人通過微信面對面建群,並給出理想的崗位人數搭配,然後組長組好隊伍之後再次申請加入我的戰隊。

雖然組隊方式有些不足,但憑藉選題的優勢,基本壟斷了最優秀的產品、設計、前後臺工程師,還意外收穫一枚演算法特厲害的小鮮肉。

產品設計

在制定選題的時候,我自己也有策劃一些產品的功能點與方向,但我並不想將這些內容強加在組員身上,而是先給些時間發揮他們的主觀能動性。畢竟這批剛出校門的實習生,雖然經驗不足,但應該還是創意滿滿的。要是最終他們出不了好的產品方案,我再用我自己的方案兜底。

但是,創意歸創意,腦暴歸腦暴,太天馬行空的想法,是無法落地成產品的。根據遊戲規則,產品的完成度會影響整體分數。因此我擔心太龐雜的產品,不僅會導致失分,而且可能無法完成業務上的任務。於是,儘管我給各組一定的自由度,但複雜性較高的需求,極容易導致延期又不是必要的功能點,一律砍掉或者優先順序調低。

組隊結束當天晚上,我就給他們傳遞我的產品要求與理念:

  • 做MVP就足夠, 以功能完備能達到準上線水準為目標
  • 將1 – 2個玩法/功能點吃透做精即可,不求大而全

具體產品暫時不放,等有機會這些產品能面世的時候再更新到這裡。:)

技術架構

原計劃我只帶兩組人,但由於報名情況火爆,共有五組人,綜合權衡了一下,覺得首次加入MINI專案就帶五組人,風險還是蠻大的,但為了照顧更多對專案感興趣的童鞋,我多帶了一組。

三組共17人,負責三條業務線,帶隊壓力還是不小,在騰訊相當於一個小組長的帶隊人數了。

技上方面,由於是使用我們們組研發的技術,因此事前我和產品先制定了一個支撐MINI專案的迭代計劃,從功能完成度、文件等方面列出了一個 checklist。然後跟組內同事並肩作戰,在MINI專案啟動前將所有 checklist的任務完成。但由於這是技術第一次對外體驗,我對穩定性有所擔憂,於是跟同事們溝通,爭取大家在週末的時候,也能響應一些遇到的 Bug,我也需要駐場,親自指導或者解決一些疑難雜症,這樣才能保障所有業務的順利完成。基礎技術、疑難診斷解答以及支援支援,是一個架構師日常需要承擔的任務。有時候雖然方法論重要,但可能不如親自上陣診斷和寫code來得實在。

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

另外一個管理者需要做的就是培訓教育。事前,我學習了本次MINI專案負責人 Ben 總的方法,針對提供的技術以及小程式開發的一些重點,提前做了培訓,雖然並不指望課堂上能馬上消化所有內容,但至少給技術們一個概念,回去對照PPT再進行練習。

當我們提供技術的真正下場接受實習生們檢驗的時候,也要因應不同產品形態,實施不同的技術架構

比如偶像粉絲的小程式,基本上全棧 JavaScript + Node 就可以搞定,用上我親自寫的 image-node-sdk 便可以實現人臉融合。

又如相簿的小程式,其實整體難點不多,只是涉及許可權管理方面有一定的複雜度,用全棧 JavaScript + Node 再結合雲這邊的資料庫也可以搞定。實施的時候,我也給後臺稍微點撥了一下如何更好地設計資料庫結構和做許可權管理。

另一組的專案就稍微有些棘手了,他們是做動物小視訊識別,演算法部份是用python + tensorflow寫的。因此,還需要實施一箇中臺的介面服務來給前臺吐資料。這邊也採用了Node做中臺。雖然 Node 對併發需求並不一定做得非常好,但如果能做好負載均衡應該也能抗住很大部需求,公司的業務也有不少實踐。另外異構系統也比較少。我後來評審其它組的時候發現,有的組用django做後臺資料讀寫,用Node又做中臺,感覺就增加了系統複雜度了。因此那個組沒有部署起上來,而我們組基本部署服務,都相當輕鬆。

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

進度把握

MINI專案參與的都是初出校門的實習生,處事經驗未成熟,工作能力與經驗都欠缺,而且並非全職做 MINI專案,自身業務可能也相當繁忙。有了這樣的預期,作為導師,從先期的產品設計(上文已提到)到後期的進度把握,我逐步摸索了自己的方法論。

進度把握方面,確實有實習生由於前端組內業務繁忙,早期投入度不夠的情況。這時,我並非第一個去做推動,而是先交由產品經理,去鍛鍊與考察產品經理帶隊方面的能力。

不過在此過程中,我首先打了助攻:由於我每天都會盯進度,適當的時候,我會把進度跟大家同步,並且會暗示其它部份都完成得很好,並婉轉地表達還差某部份功能就能拿到多少分了,以此來激勵還沒投入的同學也能儘快投入進來。

助攻之後,其中一位產品經理處理得較好,能爭取到兩位業務繁重同學當下的立即反饋,評估工作量後表示能在週末如期完成。另一位產品經理比較靦腆,正好那位組員也比較靦腆,初次爭取並沒有得來很快的反饋。後來我發現他們每天都會實習郵件給導師和組長,於是我就發了封鼓勵性質的郵件,第二天我就見到那位組員出現,並且當天晚上把90%的任務都完成妥當,效率和質量之高讓人吃驚(組團組到厲害的人意味著成功了一半)。

產品驗收與細節收斂

來到了最後一個週末,產品驗收環節,主要的得分點在產品完成度、架構效能以及程式碼規範與錯誤三大塊。各組都圍繞這些得分點不斷去迭代優化。

對基層管理比較高的要求就在於執行力與細節把控上面。我也以這樣的準則來要求自己,為了讓三組的得分都儘量高,初期的進度把握需要比較精準,遇到一些差錯影響進度了,也需要自己上陣,或者想辦法調動資源來讓進度趕上。到了衝刺前兩天,主要是求穩,儘量不要加太多太重的功能了,否則容易出BUG,即使是業務上的產品,基本也是這麼管理。

這裡有點特殊的是,三組的產品要同時上線,所以較早完成的組,當天我就放少些時間,差臨門一腳就完成但遇到難題的組,我投入精力盡力扶一扶,但我親自幫扶的準則是,非到我出手才能解決的問題,不去解決,讓實習生多試試,否則他們會形成依賴,日後難以獨當一面。

當天做得稍有不足的地方就是,由於時間不足,沒有對每個產品在各方面做好測試,雖然有提醒邊界情況有處理好,但還是有產品因為BUG扣了分,略為遺憾。這個應該在培訓的時候,多提點技術和產品,最好能把測試路徑也簡單寫一份文件,後續可以反覆測試。

這次除了產品,還要考察大家的程式碼質量,於是要求程式碼一律接入CodeDog做檢測。最後一天,我逐個組幫忙review了程式碼,提出修改意見,抓住他們一個一個把問題改好,還有讓組內負責 CodeDog 接入的童鞋,追著 CodeDog 的介面人,報錯的問題,一直改到接近滿分為止。最後的結果就是我帶的三組全部 CodeDog 分數並列第一。

最後一天上午開始對評分進行細節,滾動更新,後來其它導師也跟著我這麼評

(最後一天上午開始對評分進行細節,滾動更新,後來其它導師也跟著我這麼評)

人才與成績的爭奪

”基層抓細節,高層爭資源“ 說的是不同層級管理者的側重點,但其實也不是絕對的,基層幹部有些時候也要為團隊爭取資源支援,高層像我們們的老闆小馬哥,時不時都要體驗自家產品。在 MINI 專案中,我也得到了如何跟自己上級以及平級爭取人才與成績的經驗。

MINI 專案一開始就來了一場”人才爭奪戰“,過程還是挺有意思的。由於我和另一個導師吸引的組員較多,開始打亂了另外組導師的計劃。於是導師之間就開始討論與協調,希望為自己爭取更多的人才。由於MINI專案主要還是為了培訓新人,並非你死我活的鬥爭,基本都是在新人興趣與自己任務中間拿捏平衡點,實現一些妥協,因此我將招收的5組縮減為3組,也希望是次的妥協能為後續其它的爭論贏得一些空間。

最後當然就是成績的爭奪。我在衝刺的前兩天評分的時候預感到,目前的許多打分環節,都是由導師操刀的,每個導師,都希望為自己的組爭取到最好的成績,儘量往高分打。本著這個想法,我逆向而為,我並不先為自己的團隊打高分,而是從低分打起,適當做些分數的鼓勵。我還將得分緯度細化,每一個做得不足的地方,先把分扣了,先把問題寫了,然後滾動實時讓組員們不斷優化改進。

我的出發點很簡單,一定需要讓自己帶的產品經得挑戰與考驗。面對老闆,需要把本職工作做好了,才有底氣爭取更好的成績、更好的薪酬,否則自己都不好意思了

在得分初步出來之後,我帶的其中一組騎絕塵,折得桂冠,另外有兩組和其他導師的三組,五組共同爭奪一個銀獎和兩個銅獎。我這邊相簿組與其他導師的一組由於BUG偏多率先出局了,另一組視訊識別的組,在演算法公示的環節裡,由於演算法報告詳盡細緻,將另外一組PK掉,勇奪銅獎。幸好最後MINI專案負責人爭取到每個導師可以頒發一個導師特別獎,讓我帶的三組都抱獎而歸。

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

這次帶隊MINI專案組,收穫真的是很多,歡迎更多年輕的,升上高工的工程師們參與 SNG MINI專案的定向命題,除了能帶領實習生們一起闖關打怪完成你自己分配的任務以外,還能讓你得到不少管理上的收穫。也希望各部門的負責人可以多多推薦這些高工們參與哈。

最後奉上我與三個組的合照:

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

技術人初嘗帶隊作戰 — 指導一次騰訊 SNG MINI 專案

相關文章