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