作者 | 湯堯

大家好,我是湯堯,來自支付寶前端技術部,目前是商家與開放前端團隊leader;光說名字可能沒什麼體感,但是說到最近比較火的支付寶消費券項目大家應該有所耳聞,不少經濟體前端同學也都參與到了這場戰役裡。
今天我為大家帶來的分享是《我如何看待前端成長》将會從我經曆的幾個階段來講一講關于成長的話題。
做一線:初步定型
我10年到淘寶,進的不是專業前端團隊,也不是核心業務;剛進來的時候沒有那麼明确的規劃自己後續到底要做什麼,前後端有需要的我都做,剛進來就參加了雙十一,當時的任務是做一個全網的總成交 GMV 和 分類目展示,就是從資料庫裡面把資料取出來然後在頁面上用 table 渲染;從今天的技術來看這個是不是很簡單很原始,而我們現在有很多種高端解法來完成,比如 datav;因為沒有前端,可能我比較有感覺,我的職責重心開始轉移到前端上,主動承擔了大部分的前端開發工作。當時進公司的時候師兄告訴我淘寶的前端用 YUI,遇到問題的時候還不斷的去騷擾 拔赤;因為特别愛玩,是以基本上把 YUI + 服務端的混合模式玩出花來,也正是因為愛折騰,是以才逐漸引起了老闆的注意;也因為愛折騰,參加各種活動開始逐漸認識公司裡面各種前端同學,自己的視野被打開;然後做了很長一段時間 YUI 後一個悲劇的消息告訴我淘寶已經放棄 YUI 。
後來我開始接觸 node,那時候對阿裡來說基本上就是蠻荒時代,所有的基建都要自己做,想要跟現有技術體系打通最困難的是各種加密算法,通信協定,中間件用戶端;沒經驗怎麼辦?也是自己單純的認為再難的東西總是有解決的辦法;最痛苦的經曆是 biginteger 當時的 node 版本沒什麼好辦法就自己照着 JAVA 源碼一行一行的看寫了一個,前後耗費了一個月時間,過年的時候每天就折騰這了,當然今天已經沒那麼麻煩;加入到 chair 團隊後,我們基本上聯合了阿裡最活躍的一批貢獻者,徹底鋪墊了今天的阿裡 node 基礎設施;最開始很多事情跟績效無關,哪怕晉升都遇到了不小的挑戰,但是與我個人而言,去看那些中間件的源碼讓我的知識面進一步擴大,對于我後續要去做的事情變的更加順利。
從P5-P7這段經曆其實挺不容易,P5升P6還失敗過一次,反思第一次晉升的狀态其實是沒有水到渠成,雖然路走對了,但是積累不夠,随着日常不斷的積累和自我要求,後面的發展逐漸變的順利;最初的這段時間對我後續發展很重要,自己能夠清晰的認識自己的特長,适合做什麼,并且堅持一條确定的主線,一步一個腳印的走下來。
這一代前端走過來都挺不容易,也沒太多參考;而今天已經有很大的不同,前端規模非常大,前端委員會拉通,前端成長的聲音也越來越響,但成長始終是個人的事情,如果你自己都不努力,再好的資源優勢也看不到成長。
初帶團隊
後來比較長的一段時間,我開始帶團隊;從一線到leader,我沒有管理經驗,最開始玉伯來問我願意不願意帶團隊,我說好;答應的幹脆但其實沒有想那麼多,我不知道後面會面對那麼多複雜的問題;因為我做一線的時候運氣還不錯,比如在蘇千團隊時,每個人都自驅的往前跑,他管的不多,但是我們卻可以團隊在一起為一個清晰的目标不斷努力;然後開始帶團隊後我發現團隊還是因人而異,因業務而異,一點都不輕松;曾經也想過不帶團隊,自己一個人更加自由,帶了團隊之後仿佛跟一線同學形成了隔膜;中間有人放棄,有人堅持。
随着職責範圍的變化,支付寶會員,财富,保險,工程團隊,商家開放,從一個懵懵懂懂的新人逐漸開始學習帶團隊,從一級團隊到有二級團隊,從不到10人團隊到50人團隊;每次都在突破自己的極限,壓力不能說不大;要做一個好的leader很難,但是我盡量去努力做一個簡單,專業,有愛的團隊(我很喜歡當時玉伯提出來的這幾個關鍵詞)。
leader 是沖在前面上司團隊,而不是在後面指揮團隊。
順帶一個問題,leader 要不要寫代碼?當然要,如果一個 leader 不寫代碼,你會失去對技術的敏感度,逐漸的會變成純管理路線,如果你失去了技術敏感度,團隊會更容易變成資源型團隊,缺少一定的頂層架構,技術會遍地開花,如果你技術實力夠強,一線團隊也會足夠服你的決策;寫什麼樣的代碼?寫代碼同樣應該抓大放小,關鍵架構,項目原型,從日常疊代中尋找體感,技術底盤如工程能力等,如果事無巨細自己全都跟完,那會跟團隊缺少溝通;然後至少在9以前的leader盡量不要停止寫代碼,一線主管相對容易些,二線主管會比較難;與我個人而言我會盡可能的尋找機會寫代碼進而看到團隊的一些技術問題,制定出相對明确的技術目标,有很多技術的成長來自于對代碼設計的極緻追求,所謂匠心大概就是這個道理,隻有追求更好,你才能重塑自己的技術能力。
帶團隊的思考:成長型團隊
然後我從自己對團隊的思考來講一講我對成長型團隊的一些思考;
積極的心态,能看到最終的目标,快和早
- 大家有一種感覺前端現在的技術已經很成熟,我還能做什麼?前後端分離,微前端架構,業務中台,antd, bigfish,react,nodejs,serverless 這些過去沒有,都是近些年不斷湧現出來的優秀前端解決方案,但是有這些方案後我們就沒有突破了嘛?一個很有趣的現象是從前端技術發展路線來看,大家都說前端的技術變化太快,技術一直在突破創新;這就是從大環境來看我們仍然有非常多的同學始終能夠站在巨人的肩膀上,積極的突破創新;不是沒東西做,隻是我們沒想到;
- 做事情的方法很多,你拿到後利用自己掌握的知識把他實作完了事,還是去琢磨出更好的方案,借手上的項目不斷的去驗證自己的設想,驗證成功後推廣出去;你會采用哪一種?成長突破最大的往往是後者;如果你對目前的業務沒有任何想法,那可能是思考的方式不對,換個姿勢再想想,比如找人聊一聊,站起來放松下讓子彈飛一會,隻要你堅持思考,就會獲得靈感;
- 做技術方案的時候我們還要能看到最終目标是什麼,從目前節點往後走我們應該如何走,這路上一定充滿了艱難險阻,如果輕易放棄妥協那麼就走不到最後;
- 不嫌事小,晚做不如早做,由點到面:做事情還要快和早,不然明日複明日,等年終總結的時候就會一聲長歎,要是幾個月前我那個方案實作了就好了,要是我在那個項目結束的時候持續去推進就好了,要是我當時把那個代碼抽成通用庫,等等各種後悔的場景;有些事情在最開始的大家看到的隻是一個點,如果不去做又怎麼能由點到面呢?
跳出你的舒适區
- 公司處在舒适區會倒閉,我們也無法回避:舒适區是什麼?這個詞出現的頻次很高,我們經常會講你停留在舒适區太久了,我們給你創造些變化,去面對更大的責任和挑戰;我們也會發現支付寶從過年到現在組織架構幾乎每個月變一次,為什麼?組織處在舒适區太久,外部環境的造成的壓力讓我們不得不調整姿态,整合陣型,迎接挑戰;如果公司不能适應新的變化帶來的結局可想而知,諾基亞,雅虎等等,作為公司的一員我們自己也要勇立潮頭,不畏艱險,直面挑戰;
- 舒适的條件容易腐蝕心靈,消磨意志,進而令人放棄拼搏努力的鬥志;剛畢業時我第一份工作是在電信,國企沒那麼忙,每天都很閑,上班時間也不飽和,那些技術問題我主要花很少的時間就能搞定,那段時間過的很爽,玩的時間很多;但是過了3年之後我突然醒悟自己不能再這樣下去了,每天渾渾噩噩的不是我要的人生,工作要做的有意思;
- 有人可能會問,我不想晉升,就想好好的做一個 P6 行不行?這當然沒問題,但是随着時間的推移你一樣會成長,如果無法成長你就應對不了目前層出不窮的新技術,必然會被淘汰;如果你适應的很好,那麼就是水到渠成的事情,你不想晉升組織也會讓你晉升;
持續學習,打造學習型組織
- 成長是一種能力的培養:我感覺自己沒有成長,不少人都會這樣說;那麼成長究竟是什麼呢?我覺得每個人都要自己去想一想,有了明确的目标你才有行動的路徑,不然這句話就會變成一句空話,這個目标可以是了解一個業務,完成一次架構等等;我了解的成長是什麼呢?成長是一種能力的訓練,當我們具備這種能力後可以複用到任何職業,能夠應對未來任何事情,摘自《未來的學校》;
- 塑造富有目标感的自己
- 利用創造力解決問題的能力,溝通能力,協作能力,分析能力,團隊意識,以及個性的力量
- 個人自主性,同時随着互相之間的學習,啟迪和鼓勵,産生互相影響
- 能夠深刻而熟練的掌握知識,還能将知識教授給别人,為組織貢獻知識
- 突破職業邊界,不要把自己限制在前端,誰說前端不能幹這幹那?隻有你自己限制自己,别人沒法限制你做什麼;我們在學生時代學習的語數外實體化,在實際工作學習時往往都是綜合性的,偏科在現實中不存在;
向上管理,充分溝通,學會借力
- 工作中資訊互通和信任很重要;大家可以回顧下自己手上做過的一些項目,你清楚背後涉及到多少系統鍊路嗎?有多少一方二方依賴?最開始淘寶是買來一個 web 站點,支付寶隻是其中的一個支付功能,誰能想到如此簡單的代碼經過多年發展能發展到今天的規模;一個S級大促要拉出幾百人團隊、日常項目很少,但是幾十人也很平常;在這資訊爆炸的時代,如何做好資訊整合,協同作戰,如果還是一如既往的單兵作戰将會變的力不從心;
- 我看到有同學說主管年初丢給我一個目标,到年底了來問我要結果,同學有苦;但是你反思過自己的問題沒?你是否真的明白主管交代給你的是什麼任務,這個任務有問題嘛?你是否知道哪些事情需要彙報,哪些事情是可以自己決策的?你是否能識别風險并及時調整方向?主管和一線同學需要更多走心的溝通,所謂事前充分溝通,事後堅決執行,充分有效溝通需要下功夫;不然在這種複雜度面前不知道會跑偏到什麼地方去;
- 其次無論是誰都要去學會借力,不能總覺得這個事情很簡單,我自己搞搞幾分鐘就好了,然而單憑一己之力隻能滿足自己接觸到領域;chair 從滿足自己團隊業務為主剝離出 egg 放到社群共同維護以滿足不同業務的訴求,随着服務的領域變多,很多能力已經不是目前一個人或者團隊能夠滿足;
思維模式,鍛煉基本功 WHY,HOW,WHAT
- WHY:你為什麼做這個事情,你在業務裡面遇到的痛點是什麼,為什麼是非做不可的?為什麼你可以做,别人不能做?動機?這裡很強調一件事情就是業務導向,我們不能為了技術而技術,很多人一上來就說我要做這個做那個,但是問了幾個問題後發現,這個事情跟公司的業務沒什麼關聯性,沒法給業務帶來什麼太大的價值;ROI 又低,不值得投入,那你為什麼要做呢?
- HOW:有了業務輸入後,那麼你是如何思考和提煉的?也就是制定了終極目标後,你可以通過哪些路徑做到最終的狀态,過程如何,技術架構如何設計?有不少同學覺得做到了一點兩點就開始沾沾自喜,但是從零到一的路其實很長,隻開頭是不夠的,做技術一定不能急躁,要有持續性,過程中你一定還會遇到各種各樣的挑戰,經曆種種挑戰後才能脫胎換骨,變成一個好的方案;這也就是為什麼我會跟有些同學說,你做的事情還差一點,還沒有達到水到渠成的狀态,給你高績效已經是很大的認可,到晉升還需要把這個事情做到更完整;去試一試晉升?大多數情況下都會失敗,并且失敗的打擊不少同學其實不容易走出來;抱着碰運氣的心态去不是我鼓勵的行為;你是希望 60 分過還是90分過?要把最終選擇權留給自己,而不是運氣;
- WHAT:基本要素都具備以後,WHAT 就是在業務中取得的結果;這裡更多的是拿各種資料名額來印證前面 WHY 裡面提到的問題;比如你要解決效率問題,性能問題,突破某個技術,提升業務效果等等;這是對你做的技術價值的證明;
未完待續
探索面向未來的團隊。
借事修人,從項目中探索成長之路;這是一句老話說了很多遍;在實際執行中很有用;上面的所有思考,我們都需要在每個項目中用實際行動來驗證,如何制定目标,如何設定技術方案,如何執行,如何鍛煉我前面講到的基本能力。
成長一種修煉,走最難的路,看最好的風景。
關注「Alibaba F2E」
把握阿裡巴巴前端新動向