腾讯的敏捷实践:管理与开发

Tencent的TAPD是吸收了XP+SCRUM+FDD三者特点的并行迭代开发模式,涉及范畴包括敏捷项目管理和敏捷软件开发。

一、敏捷项目管理:

(1)Iteration

软件开发模型经历了从瀑布到螺旋再到敏捷的过程,迭代不是敏捷独有的创造,无论在RUP还是在MSF中迭代都是其核心特性之一。而在Tencent特别强调的是并行迭代,即多个版本并行,最大程度发挥资源的效率。

Release(发布)可理解成当实现的产品Feature累积到一定用户价值时的正式发布,它是比Iteration更大的概念;Iteration(迭代)是在固定时间内开发Feature的过程,Release一般包括多次Iteration。

(2)TimeBox

TimeBox(时间箱)反映了敏捷开发的节奏,即在固定时间内实现不固定特性的周期,抛开需求定义阶段,从设计-实现-测试到部署,在Tencent一般一至两周时间居多。

(3)Planning Game

对敏捷的一种常见误解是不要计划,其实在敏捷的体系中不仅强调计划,甚至区分Release计划、Iteration计划和Task计划等多种不同粒度、不同时长的计划。Planning Game突出的是让用户代表参与,由用户代表评估UserStory/Feature的优先级,开发人员评估任务的开发时间,由用户代表+项目经理+核心成员三方共同排序、组合,确定本次迭代计划需要实现的Feature List。在Tencent用户代表就是产品经理。

(4)IterationPlanningMeeting

IterationPlanningMeeting就是Planning Game实现的管理形式,通过会议沟通达成。

(5)Stand-up Meeting

团队成员围成一圈,逐个说明3个问题:昨天做了什么,今天计划做什么,有没有困难并计划如何解决。对Team而言这是检查进度、快速调整非常有效的形式,在Tencent这已经成为大家每天早上的固定习惯。

(6)ShowCase

提交测试前由开发人员演示实现的功能,产品经理到场Review是否符合当初的设想,避免接近发布时才反馈。

(7)Retrospect

每个迭代结束后,项目经理组织或轮流组织所有Team成员共同回顾本次迭代的得与失,整理Well/LessWell,因为敏捷的团队是自我反省、持续调整的团队。

二、敏捷软件开发:

(1)Story Card/Story Wall/Feature List

StoryCard是XP中推荐的需求定义方法,要求符合Invest和Moscow原则;StoryWall则用于跟踪StoryCard的变化状态,而FeatureList是Tencent一直沿用的需求表达形式,在Tencent的TAPD工具中已经实现了类似ThoughtWorks 的Mingle的StoryCard管理功能,对于需求跟踪而言这是不错的方法,一目了然。

(2)Refactoring

相信我们都听过这句话:好的代码不是设计出来的,而是重构出来的。

(3)TDD

“测试驱动开发”在Tencent执行地并不太好,Tencent的产品以Web形式居多、业务逻辑相对简单,C++下的单元测试有些力不从心。相反自动化测试在Tencent比较盛行,因为有测试部门专门的自动化测试Team在推动,而且链接的是正式生产环境,可以即时反映产品当前的状态。

(4)Pair Programming

理论上结对编程可以提高代码的质量,而且并不会降低开发效率,但Tencent的业务繁忙,资源上不允许两人结对。

(5)CI

持续集成可以降低发布前集成阶段的难度与成本,Tencent的自动化构建系统推行的比较早,覆盖了大多数产品,而且正在朝自动化构建-自动化测试-自动化发布三者协同的目标迈进。

(6)灰度发布

灰度发布是Tencent的又一创新,它将产品试用扩大到海量用户一端,在小范围及时吸取用户反馈,分析用户行为和喜好,持续修正自己产品的功能体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值