年3月9日,腾讯公司正式对外发布了《腾讯研发大数据报告》。在这份报告中,腾讯披露了年公司在产品及技术研发方面的重要数据,这也是腾讯自技术委员会成立以来第一次主动对外披露研发相关大数据,是腾讯对自身技术研发层面的一次阶段性总结。
该报告是由腾讯旗下敏捷研发协作平台TAPD、腾讯代码托管平台工蜂与腾讯集成交付系统腾讯CI联合出品,这三款平台支撑了腾讯几乎全量业务的研发全流程。
研发人员占比66%,新增12.9亿行代码
报告显示,腾讯在研发投入上持续加码。
年,腾讯研发人员占比高达66%,在中国诸多科技公司中位居前列。同时,腾讯年新增研发项目超过个——随着腾讯全面拥抱产业互联网的战略推进,年ToB项目数量比年增长了77%。
在代码数量上,年腾讯新增代码行数高达12.9亿,相比年增长了30%。
在研发效能方面,腾讯同样表现亮眼。
自年起,腾讯就开始推动研发模式的敏捷进化,在长期的敏捷研发实践中,腾讯开发人员构建出了腾讯敏捷协作平台TAPD和腾讯工蜂这两大工具,可实现对用户需求的快速响应。
TAPD提供产品研发全生命周期解决方案,支持敏捷需求规划、迭代计划跟踪、测试与质量保证、持续构建交付、研发效能度量及研发知识沉淀等全过程研发实践,助力研发团队敏捷高效协作与高质量交付。年TAPD对外开放,腾讯将宝贵的研发模式、实践及工具对外输出,助力企业提升研发效能,目前已服务数10万家企业。
而腾讯工蜂是腾讯历时4年打造的分布式企业代码管理协作解决方案。具备代码检视、分支管理、会话式开发、集成定制、审查和监控等企业级研发管理系统特性,助力企业贯穿研发流程,让开发和研发管理更加敏捷高效——值得一提的是,与腾讯TAPD一样,腾讯工蜂也已经对外开放使用。
数据显示,腾讯60%的项目团队规模在20人以下,47.8%的项目迭代周期在1周之内,平均每天完成用户需求个,而28%的需求可以在1天内得到响应。另外在Bug处理方面,46%的Bug在1天内得到解决,82%的Bug在1周内得到解决。
在研发的持续交付方面,腾讯平均每周构建次数达80万次,项目年均产物大小G,年均交付次数次,推动修复代码Bug和安全漏洞14万个,编译加速累计节省编译耗时1.9个万小时。
随着腾讯云计算和大数据相关业务的迅速发展,Go语言首次跻身腾讯编程语言排名TOP5;整个年,腾讯内部使用最多的五种编程语言分别是:C++、JavaScript、Go、Java、Python。
在技术管理人员的研发参与度上,腾讯保持着强大的活力。腾讯74%的技术Leader仍在持续输出代码,全年,平均每人输出代码3万行,参与次代码评审;38%的12级及以上技术专家潜心编码,平均每人输出代码3.3万行,参与次代码评审。
开放协作,腾讯技术大变身
对于腾讯来说,上述成果的取得,离不开腾讯年对优化技术研发环境、提升研发效能的重视。
年1月4日,腾讯技术委员会正式成立,由腾讯高级执行副总裁、技术工程事业群总裁卢山和腾讯高级执行副总裁、云与智慧产业事业群总裁汤道生两名腾讯总办成员亲自牵头,下设开源协同和自研上云两个项目组和对外开源管理办公室,以此来促进内部代码的开放共享和协同共建,在内部开源基础上加码对外开源,并推动业务在云上全面整合。
在开源协同理念提出之后,腾讯从各个事业群梳理出了一些相对基础性的技术版块率先进行了开源协同的实践,其中腾讯CI就是一个较为典型的例子。腾讯CIOteam是腾讯内部的一个跨团队虚拟组织,由IEG(互动娱乐事业群)的蓝鲸团队牵头,组织相关团队和个人共同进行腾讯统一的持续集成交付系统——腾讯CI的开发建设及运营,旨在减少重复劳动、提升研发效能。
经过一年时间,腾讯在内部的代码开放和技术协同方面已经取得一定进展。
截止目前,腾讯CI的Oteam中,共有来自全腾讯的名开发人员提交了自己开发的插件,用于对接各个事业群在CI流程中会用到的内部系统。
报告数据也显示,在技术协同方面,腾讯内部参与最多跨团队研发项目的人,为24个协作项目贡献了力量;涉及部门最多的研发协作项目,凝聚了12个部门的智慧;跨团队协作参与度最高的部门,加入了个研发协作项目的建设。
在过去一年,通过开源协同,腾讯各个事业群最底层和共性的技术能力进行梳理和拉通,建立筛选机制,推动优质开源协同项目对外开源。改变了原来自下而上纯自发开源的路径,采取自下而上与自上而下相结合,自发与自觉相结合的开源新模式。
在内部开源方面,腾讯内部整体代码开源率由年年初的20%增长至年底的70%,代码协同共建已成为一种趋势。其中,年腾讯内部新增协同代码库超过个,Q4较Q1增长了56.3%。其中包含53个公司内部重点开源项目(涉及多个代码库)在进行协同。
在外部开源方面,截至年年底,腾讯在Github自主开源项目数为92个,贡献者超过个,获得Star数超过27万,在Github全球公司贡献榜上的排名稳居前十。
年全年,腾讯开源超过22个项目,包括TubeMo亿万级分布式消息中间件、TencentOStiny自研轻量级物联网操作系统、TKE腾讯云容器服务和TBase企业级分布式HTTP数据库管理系统都在年接连开源。
年,腾讯和开源社区的合作也发展到了新的阶段,Angel项目完成了从单一的模型训练平台到全栈机器学习平台的技术演进,成功从LFAI基金会毕业;TARS项目成为开源社区仅有支持五种开发语言并有完善服务治理和运营平台的微服务开发框架。此外,腾讯还作为创始会员,加入了LFEdge基金会,和业界合作伙伴一起推动边缘计算软硬件开源技术的发展。
开源协同,腾讯新代码文化形成
年,腾讯不仅通过开源协同实现了技术研发环境的优化,更是形成了一种全新的代码文化。
实际上,腾讯代码文化的诞生,可以回溯到年;当时,在公司开放战略升级的背景下,腾讯提出了代码的开放、复用和合力开发。以往腾讯的开源文化更多是自下而上的,而在年腾讯技术委员会成立后,自上而下的开源协同机制建立,以开源、协同、云上生长为核心的腾讯新代码文化快速成长。
年1月,在腾讯技术委员会的指导下,腾讯技术社区码客和技术图谱上线。在近一年的时间内,每个月有超过80%的技术人员访问码客社区和技术图谱进行技术讨论和协同,社区上提问数量近个,回答与评论达15万次,94%的技术难题都得到了回复。
年11月11日,腾讯在成立21周年之际宣布企业文化3.0,其中将合作升级为协作。这一改变实际上具有明确的价值导向,就是要开放协同,持续进化——从某种意义上,这也充分契合了腾讯内部的技术和代码文化:对内要大家放大格局、打开边界,以开源的心态与各组织协同,用符合互联网思维的方法和工具进行协作。
值得一提的是,腾讯内部的技术文化,也充分体现在腾讯对年新冠疫情的抗击之中。
报告显示,在年新冠肺炎疫情期间,腾讯迅速出击,在智慧教育、智慧医疗、远程办公、智慧政务等各个领域推出相应服务,腾讯会议、企业