2020年3月9日,腾讯公司正式对外发布了《腾讯研发大数据报告》。 在这份报告中,腾讯公布了公司2019年产品和技术研发方面的重要数据。 这是腾讯自技术委员会成立以来首次主动公开了研发相关大数据,也是腾讯对自身技术研发水平的阶段性总结。
该报告由腾讯旗下的敏捷研发合作平台TAPD、腾讯代码托管平台工蜂和腾讯集成交付系统腾讯CI共同提供产品,这三个平台几乎是腾讯的全部
根据
研发人员占比 66%,新增 12.9 亿行代码
的报告,腾讯在研发投入上持续添加代码。
2019年,腾讯的研发人员达到66%,在中国众多科技公司中位居前列。 同时,腾讯2019年新增研发项目超过3500个,——随着腾讯全面拥抱产业互联网战略的推进,2019年To B项目数量比2018年增长77%。
代码数量方面,2019年腾讯新码行数达到12.9亿,比2018年增长30%。
在研发绩效上,腾讯也同样突出。
从2006年开始,腾讯开始推进研发模式的敏捷进化,在长期的敏捷研发实践中,腾讯开发者建立了腾讯协作平台TAPD和腾讯员工这两个工具,成为用户的
TAPD提供了产品开发的全生命周期解决方案,支持敏捷需求计划、迭代计划跟踪、测试和质量保证、持续构建交付、研发性能测量和研发知识沉淀等全过程的研发实践,有助于研发团队敏捷高效的协作和高质量的交付2017年TAPD对外开放,腾讯对外出口宝贵的研发模式、实践和工具,帮助企业提高研发性能,目前服务于数十万家企业。
腾讯工蜂是腾讯历时4年构建的分布式企业代码管理协作解决方案。 具备代码审核、分支管理、对话式开发、集成定制、审核与监控等企业级研发管理系统的特性,值得协助企业通过研发流程更敏捷、更高效地进行开发与研发管理。
数据显示,腾讯60%的项目团队规模不超过20人,47.8%的项目迭代周期在一周内,每天平均达到3802个用户需求,28%的需求在一天内可以满足。 另外在bug处理中,46%的bug在一天内得到解决,82%的bug在一周内得到解决。
在持续研发的交付中,腾讯平均每周构建次数达到80万次,项目年产量为600G,年交付次数为3000次,推进代码错误和安全漏洞修复14万个,编译加速累计节约编译时间1.9万小时
随着讯云计算和大数据相关业务的迅速发展,Go语言首次进入腾讯编程语言排行榜前五名; 整个2019年,腾讯内部使用最多的五种编程语言分别是c、JavaScript、Go、Java、Python。
在技术管理者的研发参与度方面,腾讯保持着强大的活力。 腾讯74%的技术Leader还在继续输出代码,2019年全年平均每人输出3万行代码,参与140次代码审查; 38%的12级以上的技术专家专注于编码,人均输出3.3万行代码,参加了155次代码审查。
/p>
开放协作,腾讯技术大变身
对于腾讯来说,上述成果的取得,离不开腾讯 2019 年对优化技术研发环境、提升研发效能的重视。
2019 年 1 月 4 日,腾讯技术委员会正式成立,由腾讯高级执行副总裁、技术工程事业群总裁ykdej和腾讯高级执行副总裁、云与智慧产业事业群总裁ldddd两名腾讯总办成员亲自牵头,下设”开源协同” 和 “自研上云” 两个项目组和对外开源管理办公室,以此来促进内部代码的开放共享和协同共建,在内部开源基础上加码对外开源,并推动业务在云上全面整合。
在开源协同理念提出之后,腾讯从各个事业群梳理出了一些相对基础性的技术版块率先进行了开源协同的实践,其中腾讯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个项目,包括 TubeMo 亿万级分布式消息中间件、TencentOS tiny 自研轻量级物联网操作系统、TKE 腾讯云容器服务和TBase 企业级分布式 HTTP 数据库管理系统都在2019年接连开源。
2019年,腾讯和开源社区的合作也发展到了新的阶段,Angel项目完成了从单一的模型训练平台到全栈机器学习平台的技术演进,成功从LF AI基金会毕业;TARS项目成为开源社区仅有支持五种开发语言并有完善服务治理和运营平台的微服务开发框架。此外,腾讯还作为创始会员,加入了LF Edge基金会,和业界合作伙伴一起推动边缘计算软硬件开源技术的发展。
开源协同,腾讯新代码文化形成
2019 年,腾讯不仅通过开源协同实现了技术研发环境的优化,更是形成了一种全新的代码文化。
实际上,腾讯代码文化的诞生,可以回溯到 2013 年;当时,在公司 “开放” 战略升级的背景下,腾讯提出了代码的 “开放、复用和合力开发”。以往腾讯的开源文化更多是自下而上的,而在2019 年腾讯技术委员会成立后,自上而下的开源协同机制建立,以”开源、协同、云上生长”为核心的腾讯新代码文化快速成长。
2019 年 1 月,在腾讯技术委员会的指导下,腾讯技术社区 “码客”和”技术图谱”上线。在近一年的时间内,每个月有超过 80% 的技术人员访问码客社区和技术图谱进行技术讨论和协同,社区上提问数量近 3000 个,回答与评论达 15 万次,94% 的技术难题都得到了回复。
2019 年 11 月 11 日,腾讯在成立 21 周年之际宣布企业文化 3.0,其中将 “合作” 升级为”协作”。这一改变实际上具有明确的价值导向,就是要”开放协同,持续进化”——从某种意义上,这也充分契合了腾讯内部的技术和代码文化:对内要大家放大格局、打开边界,以开源的心态与各组织协同,用符合互联网思维的方法和工具进行协作。
值得一提的是,腾讯内部的技术文化,也充分体现在腾讯对 2020 年新冠疫情的抗击之中。
报告显示,在2020年新冠肺炎疫情期间,腾讯迅速出击,在智慧教育、智慧医疗、远程办公、智慧政务等各个领域推出相应服务,腾讯会议、企业微信、TAPD、腾讯工蜂、腾讯乐享等多款To B产品全面升级功能、免费开放,支撑抗击新冠肺炎疫情工作。
春节期间,腾讯有8000多名研发人员通过远程研发协作方式投入抗疫战斗,为了给社会提供更好的服务,各领域产品及时响应、快速迭代,共提交代码14.7万次,52% 的需求在 1 小时内就能得到响应。各领域产品全力抗疫的背后,是腾讯研发能力多年的沉淀,也是腾讯新代码文化的外在彰显。
而在未来,腾讯希望打造出更加优秀的代码文化。正如ykdej此前在腾讯内部所言:
希望今后的新员工会觉得,在腾讯做开发是很幸福的事情,能学到很多东西,能看到很多优秀的代码。人们不仅谈论硅谷文化,也谈论我们中国开发人员的代码文化。