人均3.6萬(wàn)行代碼,最愛(ài)C++:騰訊首度披露技術(shù)研發(fā)數(shù)據(jù)
你每天都在用的 QQ 微信,是如何被打造出來(lái)的?
作為國(guó)內(nèi)科技巨頭,騰訊的產(chǎn)品早已覆蓋到了每個(gè)國(guó)人手中,不過(guò)這家公司對(duì)于自身技術(shù)一直比較「低調(diào)」。3 月 9 日,騰訊正式對(duì)外發(fā)布了《騰訊研發(fā)大數(shù)據(jù)報(bào)告》,首次披露了 2019 年公司在產(chǎn)品及技術(shù)研發(fā)方面的重要數(shù)據(jù),這是騰訊自技術(shù)委員會(huì)成立以來(lái)第一次主動(dòng)對(duì)外披露研發(fā)相關(guān)大數(shù)據(jù)。
讓我們看看過(guò)去一年里,騰訊的工程師們是如何工作的。
研發(fā)人員占比 66%,新增 12.9 億行代碼
報(bào)告顯示,騰訊在研發(fā)投入上持續(xù)加碼。
2019 年,騰訊研發(fā)人員占比高達(dá) 66%,在中國(guó)諸多科技公司中位居前列。同時(shí),騰訊 2019 年新增研發(fā)項(xiàng)目超過(guò) 3500 個(gè)——隨著騰訊全面擁抱產(chǎn)業(yè)互聯(lián)網(wǎng)的戰(zhàn)略推進(jìn),2019 年 To B 項(xiàng)目數(shù)量比 2018 年增長(zhǎng)了 77%。
在代碼數(shù)量上,2019 年騰訊新增代碼行數(shù)高達(dá) 12.9 億,相比 2018 年增長(zhǎng)了 30%。如果按照員工人數(shù) 5.5 萬(wàn)計(jì)算的話,每名研發(fā)人員每年貢獻(xiàn)代碼的數(shù)量是 3.6 萬(wàn)行。
在研發(fā)效能方面,騰訊同樣表現(xiàn)亮眼。
自 2006 年起,騰訊就開(kāi)始推動(dòng)研發(fā)模式的敏捷進(jìn)化,在長(zhǎng)期的敏捷研發(fā)實(shí)踐中,騰訊開(kāi)發(fā)人員構(gòu)建出了騰訊敏捷協(xié)作平臺(tái) TAPD 和騰訊工蜂兩大工具,可實(shí)現(xiàn)對(duì)用戶需求的快速響應(yīng)。
TAPD 提供產(chǎn)品研發(fā)全生命周期解決方案,支持敏捷需求規(guī)劃、迭代計(jì)劃跟蹤、測(cè)試與質(zhì)量保證、持續(xù)構(gòu)建交付、研發(fā)效能度量及研發(fā)知識(shí)沉淀等全過(guò)程研發(fā)實(shí)踐,助力研發(fā)團(tuán)隊(duì)敏捷高效協(xié)作與高質(zhì)量交付。2017 年 TAPD 對(duì)外開(kāi)放,騰訊將寶貴的研發(fā)模式、實(shí)踐及工具對(duì)外輸出,助力企業(yè)提升研發(fā)效能,目前已服務(wù)數(shù) 10 萬(wàn)家企業(yè)。
而騰訊工蜂是騰訊歷時(shí) 4 年打造的分布式企業(yè)代碼管理協(xié)作解決方案。具備代碼檢視、分支管理、會(huì)話式開(kāi)發(fā)、集成定制、審查和監(jiān)控等企業(yè)級(jí)研發(fā)管理系統(tǒng)特性,助力企業(yè)貫穿研發(fā)流程,讓開(kāi)發(fā)和研發(fā)管理更加敏捷高效——值得一提的是,與騰訊 TAPD 一樣,騰訊工蜂也已經(jīng)對(duì)外開(kāi)放使用。
數(shù)據(jù)顯示,騰訊 60% 的項(xiàng)目團(tuán)隊(duì)規(guī)模在 20 人以下,47.8% 的項(xiàng)目迭代周期在 1 周之內(nèi),平均每天完成用戶需求 3802 個(gè),而 28% 的需求可以在 1 天內(nèi)得到響應(yīng)。另外在 Bug 處理方面,46% 的 Bug 在 1 天內(nèi)得到解決,82% 的 Bug 在 1 周內(nèi)得到解決。
在研發(fā)的持續(xù)交付方面,騰訊平均每周構(gòu)建次數(shù)達(dá) 80 萬(wàn)次,項(xiàng)目年均產(chǎn)物大小 600G,年均交付次數(shù) 3000 次,推動(dòng)修復(fù)代碼 Bug 和安全漏洞 14 萬(wàn)個(gè),編譯加速累計(jì)節(jié)省編譯耗時(shí) 1.9 個(gè)萬(wàn)小時(shí)。
「騰訊工程師在用哪種編程語(yǔ)言?」可能是外界最關(guān)心的問(wèn)題之一。隨著騰訊云計(jì)算和大數(shù)據(jù)相關(guān)業(yè)務(wù)的迅速發(fā)展,Go 語(yǔ)言首次躋身騰訊編程語(yǔ)言排名 TOP5;整個(gè) 2019 年,騰訊內(nèi)部使用最多的五種編程語(yǔ)言分別是:C++、JavaScript、Go、Java、Python。
在技術(shù)管理人員的研發(fā)參與度上,騰訊保持著強(qiáng)大的活力。報(bào)告統(tǒng)計(jì)的結(jié)果表明,在騰訊,74% 的技術(shù) Leader 仍在持續(xù)輸出代碼,2019 全年,平均每人輸出代碼 3 萬(wàn)行,參與 140 次代碼評(píng)審;38% 的 12 級(jí)及以上技術(shù)專家潛心編碼,平均每人輸出代碼 3.3 萬(wàn)行,參與 155 次代碼評(píng)審。
開(kāi)放協(xié)作,騰訊技術(shù)大變身
對(duì)于騰訊來(lái)說(shuō),上述成果的取得,離不開(kāi)騰訊 2019 年對(duì)優(yōu)化技術(shù)研發(fā)環(huán)境、提升研發(fā)效能的重視。
2019 年 1 月 4 日,騰訊技術(shù)委員會(huì)正式成立,由騰訊高級(jí)執(zhí)行副總裁、技術(shù)工程事業(yè)群總裁盧山和騰訊高級(jí)執(zhí)行副總裁、云與智慧產(chǎn)業(yè)事業(yè)群總裁湯道生兩名騰訊總辦成員親自牽頭,下設(shè)「開(kāi)源協(xié)同」和「自研上云」兩個(gè)項(xiàng)目組和對(duì)外開(kāi)源管理辦公室,以此來(lái)促進(jìn)內(nèi)部代碼的開(kāi)放共享和協(xié)同共建,在內(nèi)部開(kāi)源基礎(chǔ)上加碼對(duì)外開(kāi)源,并推動(dòng)業(yè)務(wù)在云上全面整合。
在開(kāi)源協(xié)同理念提出之后,騰訊從各個(gè)事業(yè)群梳理出了一些相對(duì)基礎(chǔ)性的技術(shù)版塊率先進(jìn)行了開(kāi)源協(xié)同的實(shí)踐,其中騰訊 CI 就是一個(gè)較為典型的例子。騰訊 CI Oteam 是騰訊內(nèi)部的一個(gè)跨團(tuán)隊(duì)虛擬組織,由 IEG(互動(dòng)娛樂(lè)事業(yè)群)的藍(lán)鯨團(tuán)隊(duì)牽頭,組織相關(guān)團(tuán)隊(duì)和個(gè)人共同進(jìn)行騰訊統(tǒng)一的持續(xù)集成交付系統(tǒng)——騰訊 CI 的開(kāi)發(fā)建設(shè)及運(yùn)營(yíng),旨在減少重復(fù)勞動(dòng)、提升研發(fā)效能。
經(jīng)過(guò)一年時(shí)間,騰訊在內(nèi)部的代碼開(kāi)放和技術(shù)協(xié)同方面已經(jīng)取得一定進(jìn)展。
截止目前,騰訊 CI 的 Oteam 中,共有來(lái)自全騰訊的 303 名開(kāi)發(fā)人員提交了自己開(kāi)發(fā)的插件,用于對(duì)接各個(gè)事業(yè)群在 CI 流程中會(huì)用到的內(nèi)部系統(tǒng)。
報(bào)告數(shù)據(jù)也顯示,在技術(shù)協(xié)同方面,騰訊內(nèi)部參與最多跨團(tuán)隊(duì)研發(fā)項(xiàng)目的人,為 24 個(gè)協(xié)作項(xiàng)目貢獻(xiàn)了力量;涉及部門最多的研發(fā)協(xié)作項(xiàng)目,凝聚了 12 個(gè)部門的智慧;跨團(tuán)隊(duì)協(xié)作參與度最高的部門,加入了 113 個(gè)研發(fā)協(xié)作項(xiàng)目的建設(shè)。
在過(guò)去一年,通過(guò)開(kāi)源協(xié)同,騰訊各個(gè)事業(yè)群最底層和共性的技術(shù)能力進(jìn)行梳理和拉通,建立篩選機(jī)制,推動(dòng)優(yōu)質(zhì)開(kāi)源協(xié)同項(xiàng)目對(duì)外開(kāi)源。改變了原來(lái)「自下而上」純自發(fā)開(kāi)源的路徑,采取「自下而上」與「自上而下」相結(jié)合,自發(fā)與自覺(jué)相結(jié)合的開(kāi)源新模式。
在內(nèi)部開(kāi)源方面,騰訊內(nèi)部整體代碼開(kāi)源率由 2019 年年初的 20% 增長(zhǎng)至年底的 70%,代碼協(xié)同共建已成為一種趨勢(shì)。其中,2019 年騰訊內(nèi)部新增協(xié)同代碼庫(kù)超過(guò) 4400 個(gè),Q4 較 Q1 增長(zhǎng)了 56.3%。其中包含 53 個(gè)公司內(nèi)部重點(diǎn)開(kāi)源項(xiàng)目(涉及 400 多個(gè)代碼庫(kù))在進(jìn)行協(xié)同。
在外部開(kāi)源方面,截至 2019 年年底,騰訊在 Github 自主開(kāi)源項(xiàng)目數(shù)為 92 個(gè),貢獻(xiàn)者超過(guò) 1000 個(gè),獲得 Star 數(shù)超過(guò) 27 萬(wàn),在 Github 全球公司貢獻(xiàn)榜上的排名穩(wěn)居前十。
2019 年全年,騰訊開(kāi)源超過(guò) 22 個(gè)項(xiàng)目,包括 TubeMQ 億萬(wàn)級(jí)分布式消息中間件、TencentOS tiny 自研輕量級(jí)物聯(lián)網(wǎng)操作系統(tǒng)、TKE 騰訊云容器服務(wù)和 TBase 企業(yè)級(jí)分布式 HTTP 數(shù)據(jù)庫(kù)管理系統(tǒng)都在 2019 年接連開(kāi)源。
2019 年,騰訊和開(kāi)源社區(qū)的合作也發(fā)展到了新的階段,Angel 項(xiàng)目完成了從單一的模型訓(xùn)練平臺(tái)到全棧機(jī)器學(xué)習(xí)平臺(tái)的技術(shù)演進(jìn),成功從 LF AI 基金會(huì)畢業(yè);TARS 項(xiàng)目成為開(kāi)源社區(qū)僅有支持五種開(kāi)發(fā)語(yǔ)言并有完善服務(wù)治理和運(yùn)營(yíng)平臺(tái)的微服務(wù)開(kāi)發(fā)框架。此外,騰訊還作為創(chuàng)始會(huì)員,加入了 LF Edge 基金會(huì),和業(yè)界合作伙伴一起推動(dòng)邊緣計(jì)算軟硬件開(kāi)源技術(shù)的發(fā)展。
開(kāi)源協(xié)同,騰訊的新代碼文化
騰訊代碼文化的誕生,可以回溯到 2013 年。在公司「開(kāi)放」戰(zhàn)略升級(jí)的背景下,騰訊提出了代碼的「開(kāi)放、復(fù)用和合力開(kāi)發(fā)」。以往騰訊的開(kāi)源文化更多是自下而上的,而在 2019 年騰訊技術(shù)委員會(huì)成立后,自上而下的開(kāi)源協(xié)同機(jī)制建立,以「開(kāi)源、協(xié)同、云上生長(zhǎng)」為核心的騰訊新代碼文化快速成長(zhǎng)。
2019 年 1 月,在騰訊技術(shù)委員會(huì)的指導(dǎo)下,騰訊技術(shù)社區(qū)「碼客」和「技術(shù)圖譜」上線。在近一年的時(shí)間內(nèi),每個(gè)月有超過(guò) 80% 的技術(shù)人員訪問(wèn)碼客社區(qū)和技術(shù)圖譜進(jìn)行技術(shù)討論和協(xié)同,社區(qū)上提問(wèn)數(shù)量近 3000 個(gè),回答與評(píng)論達(dá) 15 萬(wàn)次,94% 的技術(shù)難題都得到了回復(fù)。
2019 年 11 月 11 日,騰訊在成立 21 周年之際宣布企業(yè)文化 3.0,其中將「合作」升級(jí)為「協(xié)作」。這一改變實(shí)際上具有明確的價(jià)值導(dǎo)向,就是要「開(kāi)放協(xié)同,持續(xù)進(jìn)化」——從某種意義上,這也充分契合了騰訊內(nèi)部的技術(shù)和代碼文化:對(duì)內(nèi)要大家放大格局、打開(kāi)邊界,以開(kāi)源的心態(tài)與各組織協(xié)同,用符合互聯(lián)網(wǎng)思維的方法和工具進(jìn)行協(xié)作。
在今年抗擊新冠疫情的過(guò)程中,騰訊的技術(shù)文化也發(fā)揮了作用。
報(bào)告顯示,在 2020 年新冠肺炎疫情期間,騰訊迅速出擊,在智慧教育、智慧醫(yī)療、遠(yuǎn)程辦公、智慧政務(wù)等各個(gè)領(lǐng)域推出相應(yīng)服務(wù),騰訊會(huì)議、企業(yè)微信、TAPD、騰訊工蜂、騰訊樂(lè)享等多款 To B 產(chǎn)品全面升級(jí)功能、免費(fèi)開(kāi)放,支撐抗擊新冠肺炎疫情工作。
春節(jié)期間,騰訊有 8000 多名研發(fā)人員通過(guò)遠(yuǎn)程研發(fā)協(xié)作方式投入抗疫戰(zhàn)斗,為了給社會(huì)提供更好的服務(wù),各領(lǐng)域產(chǎn)品及時(shí)響應(yīng)、快速迭代,共提交代碼 14.7 萬(wàn)次,52% 的需求在 1 小時(shí)內(nèi)就能得到響應(yīng)。各領(lǐng)域產(chǎn)品全力抗疫的背后,是騰訊研發(fā)能力多年的沉淀,也是騰訊技術(shù)文化實(shí)力的展現(xiàn)。
在未來(lái),騰訊希望打造出更加優(yōu)秀的代碼文化。