小紅書重視技術(shù)氛圍和工程師文化的塑造,關(guān)于上述問題的答案,聽聽小紅書社區(qū)技術(shù)負(fù)責(zé)人風(fēng)笛怎么說。
1024 程序員節(jié)前夕,小紅書社區(qū)技術(shù)負(fù)責(zé)人風(fēng)笛受邀出席中國(guó)計(jì)算機(jī)學(xué)會(huì)舉辦的“第二屆 1024 中國(guó)工程師文化日” ,在大會(huì)上分享了自己對(duì)工程師文化的思考。當(dāng)天包括 CCF 理事長(zhǎng)梅宏院士、CCF 前理事長(zhǎng)鄭緯民院士、CCF 副理事長(zhǎng)周明、航天科技集團(tuán)五院“天問一號(hào)”火星探測(cè)器總設(shè)計(jì)師孫澤州等 20 多位國(guó)內(nèi)外技術(shù)大咖,也分享了對(duì)工程師文化的看法。
大家好,非常感謝 CCF 的邀請(qǐng),能跟大家在1024的前一天,一起交流和討論“如何在互聯(lián)網(wǎng)企業(yè)中打造一支卓越的工程師團(tuán)隊(duì)”。
一、技術(shù)人不能自high,首先要快速交付用戶和企業(yè)價(jià)值
對(duì)于互聯(lián)網(wǎng)企業(yè)原生的增長(zhǎng)驅(qū)動(dòng)力,不同的公司也有不同的基因,大致可以分為三類:業(yè)務(wù)、產(chǎn)品和技術(shù)的驅(qū)動(dòng)。
不論哪種模式,技術(shù)都是互聯(lián)網(wǎng)公司背后的強(qiáng)大支撐——技術(shù)團(tuán)隊(duì)都在其中扮演著非常重要的角色。縱觀高增長(zhǎng)的公司,往往會(huì)看到其中工程師團(tuán)隊(duì)在員工總數(shù)里面大約占到一半甚至以上,由此也可以看出在互聯(lián)網(wǎng)行業(yè)中工程師團(tuán)隊(duì)的重要性。
當(dāng)然現(xiàn)實(shí)世界中,不論是哪種增長(zhǎng)原動(dòng)力,也都會(huì)受到一定程度的制約。比如對(duì)于技術(shù)創(chuàng)業(yè)者而言,經(jīng)常會(huì)出現(xiàn)技術(shù)很好但市場(chǎng)反響遇冷,這里面很大的陷阱就是技術(shù)自嗨。
中國(guó)絕大多數(shù)互聯(lián)網(wǎng)公司中都更偏業(yè)務(wù)驅(qū)動(dòng)。有人說在整個(gè)世界互聯(lián)網(wǎng)行業(yè)中,中國(guó)企業(yè)是業(yè)務(wù)創(chuàng)新最快的,甚至比灣區(qū)業(yè)務(wù)創(chuàng)新速度都要快。
過去十年是中國(guó)互聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展非??斓氖?,這十年中走出來的企業(yè),不管它有什么樣的特點(diǎn),工程師團(tuán)隊(duì)都有如出一轍的特點(diǎn):快。這個(gè)快并不僅僅是說交付效率快,更是交付用戶價(jià)值,交付企業(yè)價(jià)值的速度要快。
二、卓越工程師團(tuán)隊(duì)的三大文化特征:熱情、自由和效率
我自己心目中卓越的工程師團(tuán)隊(duì)?wèi)?yīng)該具備這三大文化特質(zhì),我們?cè)谛〖t書技術(shù)團(tuán)隊(duì)中也正努力實(shí)踐傳遞這種文化。
熱情:對(duì)生活有熱情,對(duì)技術(shù)有追求,對(duì)同學(xué)有感情、對(duì)目標(biāo)有激情
小紅書1024程序員日
衡量一個(gè)工程師團(tuán)隊(duì)是否是卓越,最終是以結(jié)果為導(dǎo)向——這個(gè)團(tuán)隊(duì)是否能做出卓越的技術(shù)或者是產(chǎn)品?
這些東西離開了熱情,離開了熱愛是很難做出來的,熱愛會(huì)驅(qū)使我們孜孜以求。不論是對(duì)于技術(shù)能力還是對(duì)于產(chǎn)品迭代的目標(biāo),都需要有非常深度的熱情才能把事情做好。
自由:信息平等流動(dòng)、Peer Review、不做流程的奴隸
“自由”是工程師同學(xué)非常喜歡的一個(gè)詞,工程師不喜歡被各種各樣的東西約束。比如說在計(jì)算機(jī)領(lǐng)域里,有一類文化稱為極客文化,極客文化也是對(duì)自由非常強(qiáng)的追求。
對(duì)于工程師團(tuán)隊(duì)而言什么才能夠帶來真正的自由?
·真誠(chéng)表達(dá)
·自我驅(qū)動(dòng)
·Peer Review
·信息平等
·不害怕犯錯(cuò)
·不做流程的奴隸
不僅是工程師團(tuán)隊(duì),不論什么樣的團(tuán)隊(duì),當(dāng)人數(shù)增多層級(jí)增加的時(shí)候,就會(huì)出現(xiàn)信息傳遞上的路由節(jié)點(diǎn)。舉例來說,假如有500位工程師,一個(gè)人的最佳管理半徑是7~8人,500個(gè)工程師就要分好幾層。在這些層級(jí)之間,如果信息不能自由流動(dòng),就會(huì)有人吃信息差,這會(huì)導(dǎo)致團(tuán)隊(duì)低效。真正工作在研發(fā)一線的工程師,如果沒有完整的信息,很難做出最好的選型和決定。
“Peer Review”和“沒有權(quán)威”,這對(duì)一個(gè)工程師團(tuán)隊(duì)來說也是非常重要的,工程師團(tuán)隊(duì)中層級(jí)是最不重要的東西,當(dāng)我們面對(duì)具體的產(chǎn)品或者是技術(shù)問題時(shí)候,誰(shuí)擁有最多的信息,誰(shuí)有最多可能的執(zhí)行路徑或者點(diǎn)子,誰(shuí)就是這個(gè)問題的 owner。與聲音大小、高低,資深與否并不直接相關(guān),而是與誰(shuí)掌握更多的信息相關(guān),和前面的自由是相互呼應(yīng)的。
最后一點(diǎn)是不做流程的奴隸,大家可能看過德國(guó)工程師換下水道蓋子的過程,其中的流程非常嚴(yán)密,甚至包括貼瓷磚等等的SOP。但是流程是為人而服務(wù)的,目的是解決問題,而不是把人安裝到流程上成為了“螺絲釘”。
效率:簡(jiǎn)化不是簡(jiǎn)陋,是正確的抽象和高質(zhì)量的交付
工程師更傾向于去做那些具有創(chuàng)造性的事,而對(duì)于機(jī)械的、流程化的,持續(xù)執(zhí)行的,換句話說就是做久了會(huì)使人的腦子很僵化的東西,會(huì)自動(dòng)簡(jiǎn)化。這對(duì)于提高團(tuán)隊(duì)效率,產(chǎn)出更高水平的工作非常重要。
這里也會(huì)誕生一種亞文化,工程師團(tuán)隊(duì)對(duì)于工具的重視度。
工程師團(tuán)隊(duì)技術(shù)水平高還是低,非常重要的一個(gè)度量指標(biāo)是這個(gè)團(tuán)隊(duì)是否能夠持續(xù)產(chǎn)生可以提升效率的工具,是否能夠不斷把頻繁發(fā)生的事情自動(dòng)化掉。有個(gè)玩笑說是懶惰推動(dòng)了技術(shù)的進(jìn)步,其實(shí)我們今天更多的更加先進(jìn)、更加高階的技術(shù)都是想著怎么簡(jiǎn)化,怎么節(jié)省更多的時(shí)間和步驟。
三、業(yè)務(wù)研發(fā)面臨的困難
在“永遠(yuǎn)做不完的需求”面前如何溝通和取舍?
在互聯(lián)網(wǎng)做研發(fā)會(huì)有一個(gè)像魔咒一樣的東西,叫做“永遠(yuǎn)做不完的需求”。這和整個(gè)中國(guó)的應(yīng)用創(chuàng)新環(huán)境有關(guān),這種情況下,產(chǎn)品和研發(fā)的比例有 1:3 、1:5,甚至有 1:2 的,這里會(huì)發(fā)現(xiàn)一個(gè)特別的現(xiàn)象,想要交付掉所有的需求幾乎是不可能的,需求永遠(yuǎn)都在排隊(duì),這時(shí)候就必然要做排序和取舍。
可以看到在整個(gè)研發(fā)的流程中,隨著軟件復(fù)雜度的增加和軟件生存周期的變長(zhǎng),呈現(xiàn)出兩極的態(tài)勢(shì)。
其中一類軟件會(huì)持續(xù)使用下去,規(guī)模也越來越大,另外一些模塊跟功能可能只存在一天,最短的甚至只有幾個(gè)小時(shí)。以馬上到來的“雙十一”為例,比如搶紅包雨可能只存在一小時(shí),之后這個(gè)功能就下線了。對(duì)于這樣的功能如何提升它的研發(fā)速度,怎樣做質(zhì)量保障?這是擺在不同企業(yè)面前的問題。
如何避免團(tuán)隊(duì)越大,實(shí)際做事的人越來越少?
團(tuán)隊(duì)越來越大,人越來越多時(shí),會(huì)出來很多新的工種,甚至專門有人來做組織流程優(yōu)化??墒俏覀儠?huì)發(fā)現(xiàn)流程越來越重,看著工程師做事情的人越來越多,實(shí)際做事情的人卻越來越少。真正在一線做事情的就是在土上挖溝的人,其他的人是來層層監(jiān)督,看他有沒有按照流程設(shè)計(jì)的時(shí)間點(diǎn)把溝挖好,所以這里會(huì)產(chǎn)生大量的內(nèi)耗,這和一個(gè)高效卓越工程師團(tuán)隊(duì)追求的初心和理念有非常大的 gap。
對(duì)于工程師而言,有一類不好的趨勢(shì)就是隨著技能的分類,工程師團(tuán)隊(duì)也越來越細(xì)分。比如說連前端工程師都會(huì)區(qū)分我是寫 review 的還是寫別的,我是寫 vue 的還是 react 的,做 A 的就不能做 B,更別說其中的流程監(jiān)控和質(zhì)量保障。
對(duì)工程師而言我們會(huì)更提倡技能盡可能全,我們需要更多的“T形”人才。他在某一個(gè)領(lǐng)域里需要足夠精深,但是這一“橫”也要足夠?qū)?,?cover 到我們的常用技能,能看到在構(gòu)建軟件中相同的部分,而不是不同的部分。
技能“全”的同時(shí),也要能做“小”事。一個(gè)團(tuán)隊(duì)開始臃腫起來就是因?yàn)槟切┛此撇黄鹧?,沒那么重要,卻非常影響團(tuán)隊(duì)運(yùn)轉(zhuǎn)的“小”事沒有人做。
四、打造工程師團(tuán)隊(duì)要面臨的幾個(gè)核心矛盾
接下來分享幾個(gè)針對(duì)于工程師團(tuán)隊(duì)從小到大,在逐漸變化中面臨的矛盾,這個(gè)幾乎是所有團(tuán)隊(duì)負(fù)責(zé)人,特別是到中高階技術(shù)負(fù)責(zé)人面臨的挑戰(zhàn)。
產(chǎn)品 VS 技術(shù):業(yè)務(wù)需求的持續(xù)增長(zhǎng)與團(tuán)隊(duì)有限交付能力之間的矛盾
在互聯(lián)網(wǎng)行業(yè)里有個(gè)笑話,說產(chǎn)品經(jīng)理和研發(fā)工程師是一對(duì)永遠(yuǎn)解不開的死疙瘩。剛才提到一個(gè)觀點(diǎn),就是需求是永遠(yuǎn)做不完的,但如果是技術(shù)完全拿到?jīng)Q定權(quán)在業(yè)務(wù)側(cè)也會(huì)帶來災(zāi)難。這一對(duì)矛盾在不同的企業(yè)里有不同的解決方式,但是有一條非常重要,就是技術(shù)首先要守住自己的本職工作,能夠在關(guān)鍵的技術(shù)方案中判斷什么行和什么不行,以及在技術(shù)條件實(shí)現(xiàn)的邊界和可持續(xù)性上能夠給出自己的明確判斷,避免過度承諾。
同時(shí)技術(shù)和產(chǎn)品要有比較好的互動(dòng)方式,其中就需要有非常清晰的決策流程。每家公司不一樣,比如業(yè)務(wù)驅(qū)動(dòng)型公司在解決沖突的時(shí)候,充分把信息對(duì)齊,把問題和矛盾表露清楚,最后由業(yè)務(wù)做決定,這是很重要的解決分歧的過程。
算法 VS 工程:如何客觀看待算法這個(gè)新工種的價(jià)值
算法是大概從2009年、2010年之后在互聯(lián)網(wǎng)行當(dāng)研發(fā)序列中逐漸出現(xiàn)一個(gè)新的工種,曾經(jīng)也是高薪的代名詞。在很多研發(fā)團(tuán)隊(duì)的構(gòu)建中,到底需要少而精還是人數(shù)多,存在著一定的矛盾。我們應(yīng)當(dāng)更加客觀的看待算法和工程的投入,不能厚此薄彼,好的系統(tǒng)實(shí)現(xiàn)也是非常重要的。
特別是和人工智能相關(guān)的算法,也有著很多應(yīng)用的邊界。比如說在信息分發(fā)的場(chǎng)景下,我們以大家熟悉的今日頭條、抖音、小紅書信息流為例,從過去的編輯推薦走向全自動(dòng)化、智能化的推薦算法分發(fā),可能會(huì)帶來幾倍、十倍以上的效率增長(zhǎng),從0到1有非常大的提升。但是這時(shí)也會(huì)有邊際遞減,基本上紅利一年到兩年就吃完了。這時(shí)候?qū)τ谒惴?,?duì)于AI技術(shù)的投入,在整個(gè)技術(shù)團(tuán)隊(duì)視角就要能夠看到它的邊際效益點(diǎn),更多的投入不見得比整個(gè)工程系統(tǒng)的升級(jí)帶來的收益要多很多。
算法工程很多從業(yè)者來自于非計(jì)算機(jī)科班專業(yè),比如數(shù)學(xué)、物理、自動(dòng)化等等理工類專業(yè)的同學(xué)。所以這里非常重要的一點(diǎn)就是,當(dāng)更多非科班非計(jì)算機(jī)系的工程師入行后,他們同樣需要有很好的系統(tǒng)架構(gòu)的視角。尤其是對(duì)于人工智能類的系統(tǒng),很多都是“死”在了高并發(fā)和規(guī)?;倪@條路上??瓷先ソY(jié)果很美,但是一旦上規(guī)模就很難。
而且很多人在學(xué)校時(shí),看到的更多是那些新的模型和新的演算方法的提出,對(duì)于加入企業(yè)會(huì)存在很多不切實(shí)際的幻想,覺得自己80%的工作是在改造這個(gè)世界。而實(shí)際上場(chǎng)景中80%的工作是在建設(shè)底層系統(tǒng),解決數(shù)據(jù)流、數(shù)據(jù)一致性等方面的問題。所以理性的看待團(tuán)隊(duì)中不同技術(shù)類型工種,特別是近年新興起的算法和工程之間的差異也是一個(gè)重要的矛盾視角。
研發(fā) VS 測(cè)試:維持“1:10”的測(cè)試研發(fā)比還是逐漸走向無測(cè)試
以往我們會(huì)看到不同公司都有測(cè)試工程師,最奢華的公司測(cè)試工程師和研發(fā)工程師的比值可以做到 1:1。在互聯(lián)網(wǎng)行當(dāng)里,基本上 1:3 到 1:5 是比較合理的數(shù)字,1:5 比例的公司更多是做APP,是直接有用戶 UI 界面的真正偏后端的團(tuán)隊(duì),沒有直接 UI 交互的團(tuán)隊(duì)會(huì)達(dá)到 1:10 甚至 1:15。
在軟件工程領(lǐng)域做得非??壳暗?,比如說谷歌這樣的公司,甚至能做到工程師只需要把代碼寫完提交上去,后面就不用管了,現(xiàn)場(chǎng)出了故障基本不會(huì)追責(zé)到工程師。因?yàn)樗麄円呀?jīng)完全把測(cè)試工具化、流程化掉了,甚至有測(cè)試驅(qū)動(dòng)開發(fā)的人員在里面。所以如何在團(tuán)隊(duì)里設(shè)置質(zhì)量團(tuán)隊(duì)、QA 工程師的數(shù)量,以及他們的定位到底是偏測(cè)開還是偏功能測(cè)試,也有全自動(dòng)化的在云上的測(cè)試。今天在小紅書的技術(shù)團(tuán)隊(duì)里,已經(jīng)可以進(jìn)展到可以對(duì)幾十種甚至上百種機(jī)型做到自動(dòng)化的 UI 測(cè)試。
五、我理解的工程師文化以及如何建立工程師文化
我理解的工程師文化:
·它不是“衣著休閑、時(shí)間自由、不修邊幅、免費(fèi)三餐與工位裝修”
·它不是“自high文化,完全由技術(shù)說了算,喊著技術(shù)驅(qū)動(dòng)業(yè)務(wù)”
·它是“以共同解決實(shí)際問題為目標(biāo)的團(tuán)隊(duì)文化”
·它是“內(nèi)心欲望和恐懼的外在表達(dá),因欲望而創(chuàng)造,因恐懼而改造”
這其中的核心是以共同解決實(shí)際問題為目標(biāo)的團(tuán)隊(duì)文化,更多是構(gòu)建工具、解決未知,能持續(xù)提升效率這樣的一種欲望,驅(qū)動(dòng)我們不斷對(duì)技術(shù),對(duì)團(tuán)隊(duì)內(nèi)部流程工具去改造。
那么如何建立工程師文化?
自己和團(tuán)隊(duì)一起工作,要能做自己-2的事情。
·我自己對(duì)于團(tuán)隊(duì)中的技術(shù) lead 會(huì)有一個(gè)要求,就是這是一個(gè)蠻高的要求,也是從陸奇老師這邊借鑒的:能做自己-2的事情。其實(shí)能做自己-1就已經(jīng)很了不起了,做自己-2的事情,而且要求團(tuán)隊(duì)里的 lead 都做到,是更有挑戰(zhàn)的事情。
·沒有 Leader,只有 Owner
·一切以數(shù)據(jù)說話,分析數(shù)據(jù)的本質(zhì)
·可以加班,但拒絕無意義的加班
·工程師團(tuán)隊(duì)很簡(jiǎn)單也很單純,更多的人每天是兢兢業(yè)業(yè)的坐在那里貢獻(xiàn)著自己的代碼,貢獻(xiàn)著自己的力量,希望每一位技術(shù) lead,每一家公司都有一支屬于自己的卓越的工程師團(tuán)隊(duì),我的分享就到這里,謝謝大家!
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )