编者按
“大牛 V 课堂”是 Geekbang 核心栏目,通过邀约专业领域内的互联网顶级大牛分享专业知识和见解,让你了解专业领域内含金量最高的知识。关注geekbang01 公众号,遇见下一位大牛。
本文根据腾讯研发平台总监袁琳在 ArchSummit 深圳 2015 大会的演讲整理而成,略有修改,感兴趣的读者可以关注 10 月份 QCon 上海 2015 大会的精彩内容。
正文
自我介绍,我是来自腾讯研发管理部的袁琳,目前担任腾讯研发总监,我也算是互联网行业的老兵,有十五年的软件和互联网产品的研发管理经验,我是在 2005 年加入腾讯,一直负责腾讯的敏捷产品的研发体系的探索和建设。到今年正好十年,所谓十年磨一剑,今天希望把这十年间腾讯在敏捷研发体系的工具和平台经验分享给大家,同时希望跟行业朋友进行更多的学习和交流。
在腾讯的发展历程中也孕育了众多的优秀产品,QQ、微信、QQ 空间、QQ 游戏产品等等。这些产品是如何打造出来的?腾讯如何始终保持产品研发创新的活力?支撑这些产品背后的研发体系是怎样的?腾讯的产品研发过程有哪些特色?
腾讯内部有哪些研发工具平台支持了研发团队的协作和项目管理,相信大家都比较感兴趣。接下来在我的分享中会从研发项目工具管理平台的角度跟大家介绍腾讯的敏捷产品研发平台 TAPD 平台以及 TAPD 平台是如何来支撑腾讯不同产品的差异化敏捷研发的模式。
腾讯敏捷化研发概况
首先简单跟大家介绍一下腾讯的整体研发概况。腾讯有超过一万五千个研发人员,在研发超过三百款产品,采用的是敏捷研发的方式,敏捷迭代、小步快跑。每个月会有超过两千次的迭代,超过五千次的产品发布,腾讯研发超过三百款产品,这是按照大的产品图划分的,还会再细分子产品。
腾讯采用的是敏捷化的方式,腾讯从 06 年引入了敏捷开发,经过十年间在不同团队的敏捷的实践,可以说腾讯的敏捷模式已经日趋成熟了,腾讯的产品包括腾讯的业务涉及到不同的行业领域,比如有即时通讯、社交平台、金融支付、游戏、工具平台等等,不同的行业领域面临的市场环境不同,所以研发过程也存在比较大的差异化,这里我们看到不同产品迭代的周期和产品发布的频率都是不同的。
举个例子,比如像 QQ 这样的大型的复杂的产品和成熟的项目,它的迭代周期和发布频率比较长,三个月一次迭代、一次产品发布,对于互联网外部类的、运营类的产品迭代周期发展频率比较快,可以做到一周一次迭代甚至每周多次发布,甚至每周多次发布。
对于腾讯这样的大型的互联网企业,从研发过程管理的角度来看我们面临着三大挑战,首先就是腾讯从 2006 年引入敏捷之后团队开始实践敏捷,如何支撑不同团队之间敏捷的实践落地;第二,腾讯不同产品研发过程的差异化,如何支撑研发过程的差异化,支撑团队实现敏捷;
第三,从团队的成长发展来看,团队往往会经历一个从小到大逐步成长的过程,当团队的业务增长、团队的规模扩张的时候,团队的研发过程往往会发生变化,这时候我们怎么样支撑这种团队的变化,这也是一个比较大的挑战。
腾讯 TAPD 研发模式
因此,在腾讯有一个 TAPD 的研发框架,就是腾讯敏捷产品研发框架,2002 年腾讯的联合创始人、CTO 张志东先生提出创立的腾讯敏捷产品研发框架,TAPD 也是借鉴业界的思想精髓,像 Scrum、XP、FDD,经过在腾讯团队的敏捷沉淀实践,我总结梳理出腾讯的敏捷产品研发模型。
TAPD 的核心理念是以用户价值为依归的快速迭代,小步快跑,鼓励用户参与,持续交付和恢复验证。
TAPD 的敏捷方法是如何在腾讯进行实施的呢?我们建立了 TAPD 的研发框架之后,在腾讯公司内去营造和鼓励这种敏捷研发的文化氛围,这里是一个敏捷实施的过程。
我们在腾讯内部也打造了一系列的敏捷培训课程,进行了四百多场的敏捷培训,同时也组建了敏捷的教练团队,去引导团队进行敏捷,指导团队的敏捷实施,同时在公司内组织了线上和线下敏捷实践交流,去帮助团队进行敏捷的经验交流和分享。
通过一系列的敏捷的引导去帮助团队实施敏捷,最终腾讯不同团队的敏捷实践也日趋成熟,需要一款研发的工具平台来支持敏捷实践落地,真正让敏捷玩起来。我们从 06 年开始打造这款支撑腾讯敏捷项目管理的工具平台,就是 TAPD 平台。最终通过 TAPD 平台支撑了腾讯敏捷发展的思想落地,TAPD 平台可以说是沉淀,包括固化了腾讯最优秀的团队敏捷实践。
TAPD 提供什么样的服务和价值,首先沉淀、固化、继承腾讯敏捷最佳实践,提升团队协作效率,同时帮助团队敏捷自适应,团队成长加速器,实时透明资源共享,消除信息孤岛,高效的分布式协作,无缝沟通,突破协作瓶颈。
这里给大家介绍一下 TAPD 目前用户的数据。目前 TAPD 平台有超过 3000 个项目团队在使用,团队规模下至五人十人,上至百人千人,大家可以查一下 TAPD 目前所支持的最大的项目团队有多大,有多少人,现在 TAPD 支持最大的团队是手机 QQ 团队,团队规模超过 1600 人。
同时 TAPD 平台超过三万用户量,刚才提过腾讯有 15000 的研发人员,除了腾讯的员工之外,TAPD 还会支持到跟腾讯合作的合作伙伴的研发团队,比如说腾讯有一些代理游戏,这些代理游戏是由海外开发商进行开发的,他们需要跟腾讯的测试团队进行协作,所以这些海外的游戏开发商也在使用 TAPD 平台跟腾讯的研发团队进行协作,所以 TAPD 平台也支持了全球的跨地域分布式敏捷协作。我们也支持国际化,提供了英文版。
TAPD 在腾讯十年间的应用也丰富了不同行业的敏捷实践的案例,包括社交类的比如像微信,财富类的像支付通,还有 O2O 的大众点评等等。TAPD 也是腾讯研发人员日常工作所用到的最核心的平台。
这里列出来的是 TAPD 平台目前典型的用户,包括了腾讯的所有的明星产品,包括不同业务领域的产品,同时包括 PC 端、Web 类的和移动端,覆盖了不同的平台。可以说腾讯每一款成功的产品,成功研发的背后都离不开 TAPD 平台的支持。
刚才介绍了 TAPD 平台的用户情况,接下来带大家一起揭开 TAPD 平台神秘的面纱。
TAPD 平台的优点和特色
首先介绍一下 TAPD 平台的产品架构,TAPD 平台最大的特色就是支撑腾讯敏捷研发生命周期的关系,覆盖从产品规划、产品需求管理、项目迭代计划、项目进度跟踪、工作任务管理、工时进度度量、产品测试管理、产品缺陷管理包括产品的发布计划以及产品发布结果的跟踪,以及产品反馈,整个过程形成整个研发生命周期的闭环。
同时 TAPD 平台业提供定制化引擎和开放平台以及技术服务去切入第三方的研发工具和研发应用,TAPD 平台最大的特色是敏捷,因此作为一款敏捷项目管理工具,我们也重点支撑敏捷项目管理工具中的敏捷实践。这里可以通过 TAPD 平台提供敏捷实践,帮助想要去实践敏捷的团队能够快速的提升敏捷研发的成熟度。
我们要把 TAPD 平台打造成研发工具中的乐高,TAPD 平台支持全生命周期管理,我们把研发生命周期中不同研发阶段的研发活动管理,像需求管理、测试管理、用户反馈管理、计划等等都封装成一个个独立的插件,这样就做到了应用的插件化和模块化,研发团队可以自己研发过程的需要像搭积木一样按需组装,支撑到不同研发模式。
同时 TAPD 平台也提供了非常强大的工作引擎,不同研发团队的流程往往是不同的,像十人以下的团队从需求生命周期的管理角度来讲,从需求的规划到需求的实践、到需求发布,往往会经历比较少的一些需求的状态,一般三到五个状态。
对于大型复杂的团队,比如像 QQ 需求生命周期管理相对比较复杂,从需求规划到需求的实现到需求的交付整个过程需要不同团队角色的协作,往往需求会经历十五个这样的需求状态,通过 TAPD 工作引擎就可以满足不同团队研发流程的差异化。
同时,我们知道对于一个项目管理的规矩来说,往往跟团队管理的方式密切相关,往往随着产品业务的发展,团队规模的扩张,研发过程就会发生一些变化,我们就要做过程改进。我们之前选择的研发工具平台往往就不能满足组织变化之后研发过程变化需要,就要进行研发工具的选型,这对研发过程来说往往是比较大的困扰。
对应用 TAPD 平台的团队来说就不存在这样的困扰,TAPD 平台扩展了,当研发团队发生变化的时候通过应用插件化配置、通过工作流的定义、通过研发报表的配置帮助团队适应到研发过程的演变,去帮助团队成长。同时,TAPD 平台也支持自定义的业务对象,包括开放平台以及开放的 API 接口,也提供了强大的报表功能帮助团队做精细化管理。
TAPD 平台多适应的管理方案
腾讯的产品在十年的敏捷实践经验里也积累了针对不同的产品类型包括不同的产品成长阶段,都会有不同的敏捷研发的模型。TAPD 也是根据腾讯不同产品的研发的模型提供了相适应的研发平台的解决方案,这里列出来的是腾讯比较典型的研发模型以及 TAPD 平台提供的研发项目管理的解决方案。
首先是针对于十人以下规模的团队,在腾讯有这样一些团队是处于实验期或产品初创期、探索期的团队,这些团队规模比较小,十人以下,这些团队往往研发过程比较轻量,团队比较自由、开放、创新的氛围,所以他们需要一个非常简单轻量的项目协作工具。
我们提供了协作的解决方案,包括三个应用,包括看板、文件和 Wiki。看板包括工作中的工作记录以及工作进度的透明展现,通过文件管理研发过程中的数据,通过 Wiki 进行研发过程中知识的沉淀包括创意的滚动。随着团队的成长,当团队规模扩张之后,我们提供了轻量的敏捷项目解决方案,这是在腾讯内部运用最多的项目管理方式,一般支撑规模三十以内的团队,提供一系列的敏捷实践应用帮助团队更好的实施敏捷。
另外,在腾讯内部还有一些大型复杂的项目,比如像刚才介绍过的手机 QQ、PC 端 QQ 这样的大型项目,他们的团队规模超过百人,整个团队研发的过程、研发的流程相对来说比较成熟,同时从这些大项目来看他们对研发流程规范性的要求比较严谨。
跟刚才所介绍过的轻量企业团队不一样,轻量企业团队研发的规范和研发规则的约束相对比较弱,对大团队来说怎么确保上百、上千人的快速高效运转呢,就需要通过流程 + 工具。我们 TAPD 平台就提供了全生命周期的解决方案,就提供从反馈、缺陷、需求、任务、测试一系列的,帮助团队做精细化的管理。
TAPD 平台业提供了自定义引擎 T 魔方,支持团队建立一个全新的应用支持个性化的研发活动和研发管理,通过建立应用自定义业务对象、自定义工作流、自定义业务规则甚至自定义业务字段和应用。比如腾讯游戏团队通过 T 魔方建立游戏流程,微信团队会用 T 魔方建立用户投诉管理的流程,通过 T 魔方可以快速搭建一个研发的个性化的流程,支持研发流程。
TAPD 平台也提供了一个开放平台,把所有开放对象都提供了 API 接口,通过 TAPD 平台的 API 接口可以帮助腾讯业务团队开发自己的平台、自动化测试的系统等等。
这里介绍一下腾讯的系统集成系统,因为腾讯不同的业务,基础平台和开发业务平台都不同,所以腾讯内部没有统一的公司级的平台,是各个业务团队根据自己的技术特点、业务特点搭建这样的系统,包括自动发布系统,通过 TAPD 平台可以把各个业务部门与管理实践和工程实践贯通。
同时腾讯内部还有比较多的非常好的研发工具,这里给大家介绍一款腾讯针对移动 APP 的异常监控和上报的工具 Bugly,这个功能非常强大,做一个插件植入移动 APP,舰空导 APP 的信息,包括环境信息、设备信息,都可以做到非常快速的上报。Bugly 通过 API 接口把检测到 APP 的信息快速的从 API 写入做到移动 APP 的快速跟踪,推动测试团队和开发团队快速解决问题。
Bugly.qq.com 大家可以深入了解一下,同时在展厅 Bugly 团队也会给大家提供支持。TAPD 平台也提供了移动版,提供了移动 APP 包括企业号,满足移动场景下的工作管理和项目管理的需要。
评论