设为首页 加入收藏

TOP

腾讯离职员工分享的腾讯面试招聘及腾讯内部的一些东东!希望对你有用(二)
2014-11-23 20:13:17 来源: 作者: 【 】 浏览:126
Tags:腾讯 离职 员工 分享 面试 招聘 内部 一些 东东 希望 有用
006年说起,那时Tencent规模已经开始膨胀,开发模式急需规范和标准 化,到底走IPD(集成产品开发)还是Agile(敏捷)的开发路线,公司管理层也在为拿不定主意而犯愁,之后研发管理部开始与ThoughtWorks 公司接触,逐渐将敏捷产品开发引入进来,并正式命名为TAPD(Tencent Agile Product Development)。
接 触是从一次3天15W的培训开始的,ThoughtWorks派来了一个4人讲师团队,三天的课程让人印象深刻,由此也诞生了Tencent 日后推行敏捷的第一批种子。后来一想,这次培训本身就是敏捷的一次真实案例,成员临时抽调,有来自北京,也有来自西安;课程设置应我们临时要求即时调整, 五天压缩成三天;讲解过程大量应用白纸、小纸条、图钉和白板等简单工具;关注学员的心情曲线等。这是一个拥抱变化的团队,从他们身上折射出沟通、简单、反 馈和勇气的敏捷价值观。
简言之,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的又一创新,它将产品试用扩大到海量用户一端,在小范围及时吸取用户反馈,分析用户行为和喜好,持续修正自己产品的功能体验。
当然开发方法和流程确定了还远远不够,更难的是如何将它推动落地。首先Tencent组织开发了承载敏捷思想的TAPD项目管理工具,它类似 ThoughtWorks的Mingle;然后推出了敏捷能力模型,类似CMM成熟度模型一样对Team评级加以引导;同时还推出了敏捷指数排行榜形成竞 争,营造你追我赶的声势氛围。
文章写到这里行将结束,最后我们分析Tencent为什么选择Google和ThoughtWorks,其实是 由互联网行业本身的特点决定的,互联网的生存法则就是大鱼吃小鱼、快鱼吃慢鱼,谁转身的快、谁拥抱变化、谁更关注用户,谁才可以笑到最后。阿里巴巴董事局 主席马云说过:今天很残酷,明天更残酷,后天很美好,但绝大多数人都死在明天晚上,却见不到后天的太阳。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇罗伯特?斯科布尔参加微软面试 下一篇数据库面试题集 英文的

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: