天天看點

人物訪談|紮根社群的工程師,月影的前端人生技術中台前端團隊:降低企業成本,為業務團隊 賦能對前端開發者的思考:永遠保持敏銳度和好奇心紮根社群,做一個懂社群的前端開發者技術影響力的思考

作者:位元組跳動終端技術×ByteTech

嘉賓介紹:娛樂圈有藝人"歌紅人不紅",文學界也有作者"筆名勝原名"。提起吳亮,大家可能更熟悉他的網名——月影。月影是前端開發領域當之無愧的技術前輩,同時他又是紮根社群、心系社群的開發者。

2004年剛畢業,月影以管培生的身份加入了一家傳統的軟體公司——金蝶軟體。因為是半年輪崗實習制,他先後接觸到售前、售後、開發等不同崗位。半年後回到總部,月影開始了自己的程式設計生涯。他回憶說:"回到總部的資訊管理部門以後,我有機會參與到公司背景的MIS系統開發。雖然現在聽起來沒什麼特别之處,當時卻是一個先進的概念。因為這個系統裡有很多複雜的互動,沒有'前端開發'去解決,我就抱着嘗試的心态,第一次接觸并開始學習 JavaScript 。"

那時,國内還沒有前端開發這個行業。憑借對産品界面互動的興趣,月影開始系統地學習JavaScript,成為國内比較早的前端開發者。

我接觸程式設計比較早,但是之前寫的比較雜。在學校裡、實習的時候用過C、 C++、C # ,也寫過 PHP ,但沒有寫過 JavaScript 。第一次接觸JS後,發現自己對前端的 UI 挺感興趣。是以從05年開始,正式成為了國内比較早的一批接觸前端的程式員。當時在一些技術社群,我也會做分享和交流。

2008年月影來了北京,正式開始帶前端團隊。

後來十幾年的工作中,月影大部分的時間裡都在做前端開發和技術團隊的管理。除了日常團隊管理外,也做一些前端相關的技術、研發項目和開源架構。

我覺得我自己其實算是一個JavaScript 程式員,平時空閑的話還會寫寫代碼。之前做的開源項目,公司裡面也有一些其他的團隊在用,是以也會偶爾幫忙改個代碼。

月影目前在位元組跳動技術中台前端團隊,部門定位是中台,是以會有搜尋、遊戲、使用者中心、國際支付、技術社群、使用者增長等業務方向。在這樣一個中台團隊的背景下,支撐業務部門提效、降低企業成本是團隊重點關注的方向。

雖然業務特點不同,但共同點是需要給業務賦能;我們更多的會考慮如何去賦能,考慮我們的工具對業務的支撐能力,這是更多會去考量的。

作為中台前端團隊,與業務線中的團隊分工難免會有些重疊。如何避免重複造輪、高效推進成果産出也是中台團隊必須要思考的問題。

如果說一些團隊和業務,它還處于孵化期,那我們中台會更多地深入到業務一點兒。但如果說這個業務團隊處在一個成熟期的話,我們其實更多地是提供流程工具和一整套解決方案的支援。更多偏業務的東西,還是會閉環在業務裡面去實作,是以這個其實是一個互相配合的狀态。 我們中台這邊也會提供一些相對通用和完善的産品,這些技術性産品可以幫助業務更好地達成業務目标,以更低的成本去試錯。

除此之外,如何讓中台團隊發揮更大的價值、賦能更多業務團隊降低成本,月影也有自己的想法。

我們的基礎設施是貼着業務走的,像搜尋、使用者增長,從底層連接配接公司内部基礎架構的團隊,用已有的基建能力,去做貼合業務需求的基礎設施。 但因為團隊比較大,業務方向和場景比較多,我們需要考慮如何與業務團隊的能力橫向打通,把适用于業務團隊的通用能力抽離出來,并且打磨得更好、支援更多的業務。 位元組内部使用的搭建平台,有基于配置化的搭建、低代碼的搭建、無代碼的搭建。配置化的搭建比較适合于給研發團隊使用;低代碼搭建可能适合于産能的團隊,無代碼搭建的話,就會更适合營運同學。 雖然它們已經是一套完整的體系了,但我們期望在豐富的場景中,把它做得更完善一些。因為包含内部場景以及to B的外部客戶需求,我們提供的底層代碼搭建的能力是可以更抽象、更完善的,能夠适應不同的業務場景,在各業務線上去提效。 我希望這些工具能夠真實地幫助業務效率提升、改善品質。與此同時它本身足夠完善,能代表整個行業發展最先進的技術。在未來的話,我們可能會把這些能力通用化,甚至考慮開源或to B。

位元組文化裡面有一條叫"多元相容"的團隊理念。每個組織一定是多元化的,沒有統一的标準去衡量每一個候選人。如果每個人都能發揮他的長處,團隊才會發展得更快更好。

帶着這樣的理念,月影會從業務規劃能力、技術規劃能力、管理成熟度思考團隊的管理與建設。

所謂的業務規劃,就是要關注業務的發展、講清楚業務的未來發展方向和整體前景,以及它目前急迫需要解決的問題和面臨的挑戰。要了解背後的邏輯,從技術側去思考如何改進業務。這樣,在處理問題的時候,才會更有前瞻性。 第二是技術規劃。當清楚業務規劃後,相應也會知道業務在未來的挑戰點,是以需要思考有哪些可以通過技術或者通過技術儲備來解決的,同時就會把業務規劃轉化成團隊對應的技術規劃和技術挑戰。 比如某業務在未來計劃會發展到多個平台,那在初期的階段,就需要把技術投入到研究跨平台、跨終端的這些方面。而不是當團隊要做小程式版App時,發現團隊沒有小程式開發的經驗,這肯定是不行的。 是以,我們需要基于業務去做一些技術規劃,在技術規劃的過程中看到技術挑戰點。目前用的這些工具和架構,在這個跨端能力上有什麼限制,有沒有好的解決方案。是以,不一定說技術能力要多好,要多深,但一定要有這方面的敏銳度和前瞻性,能夠提前去看到這個業務發展中,給團隊帶來的一些技術挑戰,然後提前布局。 第三個是管理成熟度,思考團隊多元化的發展方向以及未來的成長空間。作為團隊管理者,你需要為團隊裡每一個同學規劃他未來一年到兩年的成長路徑,并且了解團隊成員整體的訴求是什麼樣的,怎樣把他們個人的訴求和公司對他們的要求和發展結合起來,能夠讓他們更長遠地陪伴這個團隊,陪伴這個公司走得更遠。像這樣的問題,是需要偏管理層的成員去考慮的。

對于專家型的角色來說,他除了在技術上有一定的深度,也能在技術規劃裡面承擔比較核心的角色,能夠敏銳地看到業務發展的趨勢,然後去做好技術儲備。

我發現一些 IC 角色經常會犯的一個問題,就是埋頭研究技術,不懂得合作。個人的力量是有限的,其實一個人是需要能夠更多地影響整個團隊,帶動團隊裡的其他人的。他要能指導不同職級、不同方向的成員更好地成長,這樣的價值就會比單純埋頭做事情的大很多。 你會發現說,這些高階的成員不管是技術方面還是管理方面,抑或是軟素質方面表現得都很好。比如說,會溝通、能指導,能夠意識到做這些事情的重要性。

就新人普遍提到的「行業發展速度快、新技術越來越多,學不動」的問題,月影也在采訪中給出了他的想法和方法論。

首先我們應該更樂觀地看待這個問題,行業發展得快,說明成長空間或者技術發揮的空間更大,是以大家不用太盲目地去焦慮。 同時,我們也應該更加聰明地去看待這些問題,思考一下哪些東西是需要學的?有些知識屬于基礎知識,相對而言變化的沒有那麼快,比如很多算法,在很長一段時間内都是比較穩定的。這些對于前端或者其他領域來說都是很有幫助的,是以我們的基礎需要打牢并且做得更紮實。 另外一塊屬于領域知識,當中又分成了通用的領域知識和專用的領域知識。通用的領域知識,最好提前去學習掌握。 現在,我們有很多項目都是用TS去寫的,是以它屬于通用的領域知識,需要成員去把TypeScript 給學習好。 還有一塊屬于專用的領域知識或工具,比如說你要做工程化、工程打包,你去學Webpack 或者是 Vite ,這就屬于專業領域知識,不用提前投入很大的精力,因為他們其實就是工具。是以,當項目裡用到Webpack打包的時候,再去學習就可以,即便日後把這些知識忘掉了也沒關系。大家不用擔心,行業今天用Webpack明天用Vite。這些知識本來就不需要提前去學,等到用到的時候再去邊學邊用就好了。 前端的很多知識是屬于這類知識的,是以不用太恐慌、太焦慮。他們的出現其實對這個行業也會有很多積極的作用,能促進前端整個行業的更好發展。是以,我其實還是挺樂見這些新工具的産生。

作為最早一批的前端從業者,月影完整經曆了網際網路技術社群的變化。從最早在51JS社群和前端前輩探讨技術、碰撞思想,到後來深度參與CSDN、部落格園、開源中國等社群生态共建,以及現在他親自規劃稀土掘金社群的未來發展,月影俨然是一位對社群有着深入見解的前端開發者。他希望技術社群可以成為一個有歸屬感、有溫度的社交圈,其中的每一個技術人都能快樂地成長。

51JS其實是一個傳統的BBS 網站,大家更多地把論壇當做日常溝通和讨論的平台。當時也産生了很多非常先進的前端思想,非常超前,可能五年、十年之後才以比較成熟的技術形式呈現出來。我們跟一些前端的前輩,比如像 Hax 、周愛民,都有過非常激烈的思想碰撞,甚至有過一些争吵。當時的技術論壇非常活躍,大家對51JS也有很強的歸屬感。後來,随着程式員規模的擴大,在51JS這樣的傳統社群,感覺人與人之間的距離沒有那麼近了,也沒有當年的感覺,大家就逐漸不太去使用它,于是就慢慢沒落了。 之後,也有更多不同類型、不同調性的技術社群湧現了出來。CSDN的核心是内容,沉澱的時間長,是以沉澱的内容很多,裡面有大量偏技術類的内容,是以很多人把 CSDN 當做内容的消費源。一個小白開發者,如果在工作中遇到了問題,在百度或 Google 上一搜,第一條就是 CSDN 的内容。這個内容不一定很深入,但照着步驟去做,可能就解決了工作中的問題。但這也是CSDN的瓶頸,内容多但相對初級,且依賴搜尋引擎。更直接一點,它的流量是搜尋引擎帶來的,這波使用者消費完内容就走了,并不會對社群産生忠誠感和歸屬感,也不會對社群的社交産生有價值的貢獻。 開源中國是做開源方向的。我覺得開源其實是一個很重要的方向,從政策上看,國家也非常重視開源,第一次把開源寫進五年規劃裡。因為現在是一個開放的行業,開源生态幾乎等同于整個開發者生态。 2015年,我開始關注稀土掘金,這個社群更多地聚焦在内容和社交的深度。能把這塊兒做好的社群,目前看還是比較少的。如果你是核心使用者,應該可以感受到掘金對使用者價值的關注,一個是内容的品質,一個是社交的深度。我自己是技術社群的資深使用者,會希望建立起一個大家有歸屬感的社交圈,滿足日常職業成長和學習的訴求;也希望通過社交,能讓做技術或者熱愛技術的人快樂成長。

談到稀土掘金未來的規劃,月影反複提到"使用者價值"這個詞,他說不是所有的工程師在早期便足夠優秀,我們希望跟他們一起成長!

雖然說剛剛提到的很多社群都在考慮做 to B,稀土掘金未來還是會比較堅持地去做 C 端使用者,做好使用者價值,而不會偏向于做使用者規模。我認為一個社群應該能夠對這個行業有所幫助,最好的方式就是能幫助從業者更好成長。當從業者成長後,反過來又能幫助社群成長為更好的社群。是以,在未來一年裡,我們會去做會員權益體系,讓稀土掘金成為一個好的開發者平台。不是所有的工程師在早期就足夠優秀,有足夠大的平台來實作自我成長,還有許多人可能學校不是那麼好或者目前階段技術實力還沒有那麼強,他們可能去了一些小平台,但他們其實也有成長的訴求。稀土掘金能成為他們職業發展的平台,能夠像一些好的團隊、一些好的公司那樣,真正給他們的職業成長帶來幫助。這就像帶一個技術團隊,在團隊裡找到那些高潛能的成員,更好地去輔導和幫助他們成長。對于社群來說也是一樣的,找到社群裡面高潛能且願意學習、有職業成長訴求的使用者,量身定制适合他們的成長路徑。

對于技術沙龍,月影覺得更多的是向有經驗的人請教來解決職業發展的困惑,一年參加一到兩次技術大會對擴大視野也會有很大的幫助。

如果項目中遇到的一些特别具體的問題,可能還是看書學習、問問同僚,或者去網上找答案比較好。在沙龍裡面,更多還是解決職業發展的困惑。比如說,究竟是往技術深度發展好,還是往廣度發展好?比如說,在未來的半年到一年裡,想提高自己的實力,但是不知道自己該朝哪個方向努力?該學什麼東西?如何平衡好項目和學習的關系? 就技術大會來說,一種是綜合型的,大會中的每一個專場,可以認為是一個比較垂直的沙龍,那些内容能夠去解決一些你的困惑和問題。另外一些大會偏向于商業推廣,裡面會有很多廣告,像那樣的可以适當減少關注。因為現在各種大會比較多,很難知道哪個好,哪個不好,是以大家可以仔細辨識一下,如果發現這個會太水了,記一個黑名單,下次就不要去參加了。 其實,我還是很鼓勵大家去參加這種高品質的大會,不用太多,一年兩、三場就可以,對自己還是會有一些幫助的。我們最近也在籌備"稀土開發者大會",今年是第一屆,比較偏向于幹貨分享,比較偏向傳統的綜合類技術峰會,我們會邀請行業裡面比較厲害的講師來分享技術幹貨。未來的話,我們還是想辦的有特色、有差異的大會。稀土掘金社群除了專注于技術交流的幹貨内容以外,也會增加更多的社交内容,比如一些線下的遊戲、嘉年華等這樣的綜合類大會。

來位元組之前,月影除了管理技術團隊,同時也在做技術團隊影響力的工作。月影說:"即使像奇虎360這樣的網際網路公司,也需要在技術影響力上投入精力。是以,如何吸引招緻更多優秀的候選人,是技術品牌需要長期投入去做的事情。我們會發現這是一件有長期收益和長期價值的事情,是以慢慢總結了一些經驗。"

對于他本身而言,月影認為"技術影響力建設"是一件很有挑戰的工作。随着技術招聘标準的提升,招聘需求的增加,整個技術團隊的影響力建設顯得尤為重要。

因為位元組的業務發展很快,招聘候選人受業務本身的影響更大。有些候選人會優先考慮發展較好的業務團隊,但是技術中台也有獨特的優勢——支援的業務産品比較多,技術沉澱和發展空間也會更多。是以業務團隊要一方面看到自身發展的核心優勢,另一方面把這些梳理出來,成為競争力對外推廣。 另外,我希望也能從教育訓練角度切入,做一些前置的人才培養工作,進而緩解招人壓力,補充人員缺口。這個論點其實已經驗證過了,是以我也希望把這些好的經驗給搬過來。拿前端來說,對于一些想要從事前端工作的學習者,可以通過ByteTech推出的"青訓營項目"學習一部分課程,進入招聘環節。 不論青訓營項目,還是新媒體營運工作,我們的目的并不是封閉地去做技術中台的前端影響力,而是更開放、更全局地考慮整體位元組前端的問題,打好位元組前端這樣的品牌,才能有更多優秀的人加入。依我看來,目前各個業務團隊都在積極争取市面上現有的人才,大家不如一起把這個蛋糕做得更大,然後吸引更多的人,培養更多的人。

火山引擎應用開發套件MARS是位元組跳動終端技術團隊過去九年在抖音、今日頭條、西瓜視訊、飛書、懂車帝等 App 的研發實踐成果,面向移動研發、前端開發、QA、 運維、産品經理、項目經理以及營運角色,提供一站式整體研發解決方案,助力企業研發模式更新,降低企業研發綜合成本。