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