在敏捷转型的过程中,除了敏捷宣言中的四个价值观和十二条原则以外,并没有太多比较权威的理论实践。

如图一,敏捷宣言中的四个价值观:

(图一)

四条敏捷核心价值观指出了敏捷的核心思想,但是并没有仔细说明具体的实践方法。所以这四个价值观看上去比较抽象,很难理解。下面我分享亲身经历腾讯敏捷转型所遇到的案例,足以说明敏捷宣言中工作的软件高于详尽的文档这条价值观(其余的价值观我会在另外文章里面解释)。

“工作的软件”高于“详尽的文档”。举个例子:“如果买一个崭新的洗衣机回家后,有多少人会看完使用说明书再使用洗衣机洗衣服呢?”对于这个问题,我想,不管男女老少,答案都是一致的:根本不会。因为洗衣机的使用大家都比较熟悉,而且家电行业发展很成熟,所以很多人即使不看说明书,一样懂得如何去操作洗衣机。

而“工作的软件”高于“详尽的文档”也就是这个意思。这里的软件就等同洗衣机,详尽的文档等同于使用说明书,软件的可用性是第一位的,详尽的文档是其次的。同样,在软件开发中,开发团队的重心应该是放在如何保证软件的可用性,而不是思考如何写一个完美的文档。例如:增加软件异常行为监控,增加crash的上报,不断分析用户的行为等。

2007年,腾讯公司在内部推行敏捷,团队不可能仅仅以四条敏捷价值观就开展工作,团队就面临着怎么实施具体可行的工程实践的问题。经过一段时间的对比和考察,最终大家选中了Scrum+XP的混合体(如图二),做出了以下这套方案。

(图二)

Scrum

√迭代规划会议

√产品Backlog

√每日站立晨会

√故事墙

√迭代回顾

×焚烧图

XP

√重构

√持续集成

√自动测试

√代码规范

×结对编程

×集体所有权

腾讯独有实践

√灰度放量

√showcase

如上图列表,带√的是最终采纳的,带×是最终放弃的实践。

团队实践敏捷的采用Scrum+XP方法中,Scrum整体采纳的比较多,个人认为主要原因是:第一,Scrum的一些措施更偏团队管理和沟通管理,对于早期的敏捷实践,这两个层面的实践容易实行,而且见效比较快。第二,XP实施的措施都是偏代码实践的,对技术要求比较高,实施成本也比较高。当然,结合腾讯的海量运营业务,成功实践敏捷肯定需要一些独门秘笈。

说说我对Scrum的理解,Sprint是组成Scrum的关键因素,翻译的意思是迭代,也就是研发周期为一周、二周、三周或者四周的时长,就必须有一个交付的版本,而且发布版本最长周期不允许超过四周。迭代引入一个Timebox的概念,可以类比集装箱的概念。集装箱这个发明出现在航运后,彻底改变了世界航运的版图,目前全球非散货运输的90%都是依赖集装箱的。集装箱的使用有严格的规定,从而容易组合运输,并且方便各种运输工具匹配。集装箱广泛的使用就是因为它能够极大的减少了运输期间的损耗,提升运输时的效率。类比咱们Sprint概念,也是通过引入固定的迭代周期可以减少软件研发过程中团队的内耗,提升版本交付的效率。凡事有例外,曾经有一个著名的故事:如果要运输一头大象,一个集装箱容纳不下怎么办?答案下一篇文章揭晓。

关于最终放弃的三个实践。

焚烧图——这个实践方法在当年也使用了一段时间,最终发现效果不好。因为在团队开发互联网软件产品的过程中,需求变更非常频繁,而焚烧图是通过每个迭代后还剩下需求个数来展现的,导致这个图展现的数字没有实际意义。因为多次迭代需求实在是太频繁,效果很不精确,所以失去意义。需要用到焚烧图的前提是要么需求没有太大的变化,或者用来做每天的bug焚烧图。

结对编程——当年有部分团队使用这种方法之后,实在是太耗损内耗,最终放弃。如果都是用来编写代码的话,员工受不了,劳动强度很大。一直在思考,而且团队成员互相监督,导致大家都没有喘气的时间。而如果是用来编写测试用例的话,老板又受不了,感觉浪费了一半的编程力。最终这个方法没有大规模推广起来。

集体所有权——这个所有权思想其实一直都在提倡,但是很难做到。毕竟团队中每个人都想有一个自己全权负责的业务,很多程序员对待自己的代码就像对待自己的女朋友一样,不喜欢其它人动手动脚的,自己怎么看都喜欢。然后对待别的程序员的代码都像对待一坨shit一样,看都不想看,喜欢按照自己的Style重新设计一遍。这是一个非常有效消减技术债的方式,但是却很难实现。

就这样,腾讯敏捷转型在不断的探索和实践中,找到了独特的敏捷方法。

系列文章#

第一辑:我亲历的鹅厂敏捷转型

NO.1 敏捷是什么鬼

NO.2 帅哥,来多少的敏捷

NO.3 Scrum有什么好

NO.4 为什么敏捷团队不要超过15人

NO.5 需求没做完可以发布嘛

NO.6 如何打造称手的武器

NO.7 QQ邮箱怎么成为行业第一的

NO.8 你爱上手机QQ么

NO.9 天天系列天天见哟

文章来源:微信公众号“老布谈敏捷”(ID:bootagile)

作者:薛军/Boots,现任:深圳市一起六企业管理有限公司创始人,腾讯大学外聘高级讲师,业问特聘腾讯之道讲师。曾任腾讯项目管理通道委员会会长,腾讯项目管理P4专家,敏捷教练,腾讯LBS总监

本文由@薛军 原创发布于博客园,未经许可禁止转载。

腾讯P4项目管理专家,敏捷教练。

【腾讯敏捷转型No.3】Scrum有什么好?的更多相关文章

  1. 【腾讯敏捷转型No.2】帅哥,来多少敏捷?

    上回腾讯敏捷转型系列第一篇文章<敏捷到底是什么鬼?>讲到公司铁了心要推进敏捷,这是战略层面的决定,为什么呢? 当时的我们并不知道公司为什么一定要推行敏捷的新概念,但是后来公司的变化帮助我们 ...

  2. 【腾讯敏捷转型No.8】你爱上手机QQ了么?

    上一篇文章<QQ邮箱如何利用敏捷做到中国第一>,“QQ邮箱之母”马化腾带领QQ邮箱团队,从流量思维向产品思维转变,“QQ邮箱之父”张小龙也是在这个敏捷转型过程中,剔除固有的成见,激发对优秀 ...

  3. 【腾讯敏捷转型No.7】QQ邮箱如何通过敏捷成为行业第一

    前几篇文章讲到2006年的腾讯是如何开始敏捷转型的,接下来这篇文章,我将向大家讲述,腾讯开始敏捷转型之后,QQ邮箱是如何通过敏捷成为行业第一. 众所周知,张小龙是“微信之父”,对他熟悉的人,应该也知道 ...

  4. 【 腾讯敏捷转型No.4 】为什么敏捷团队不要超过15人

    早期,腾讯公司的架构是比较简单的.从上至下分别是:公司——商业单元(BU)——部门——组——员工,每个部门基本上就是负责一个大的产品,每个组都是按照专业进行分工和管理,例如:产品组.终端组.后台组.设 ...

  5. 【腾讯敏捷转型NO.1】敏捷是什么鬼?

    “敏捷是什么鬼” 最近对外进行<腾讯产品敏捷研发体系>授课的时候,我经常可以从参课学员的眼睛里找到这句话. 通常我会鼓励大家,说:“告诉大家一个好消息,你们今天所有的疑问都是有答案的,唯一 ...

  6. 【腾讯敏捷转型No.6】如何打造称手的敏捷工具

    通常情况下,大家对于敏捷的感受就是:大家一起来开站立晨会啦!然后一大早,大家拿着早餐,围成一个圈,听一个人在讲话. 在很多公司,决定采用敏捷之后,都会从晨会开始,因为很多人觉得敏捷其它模块都很难学习, ...

  7. 【腾讯敏捷转型No.5】需求没做完可以发布嘛

    很多人对于敏捷的第一直觉就是“快”,开发快,测试快,发布快,并不知道如何把这个“快”应用到敏捷实践中,下面我们来分析一下导致工作效率低的核心原因.没有使用敏捷之前,在大多数情况下,项目管理都需要开各种 ...

  8. 世界500强ING集团顺利的敏捷转型之路

    案例背景 为什么银行要像灰狗一样快? 荷兰国际集团(ING),成立于1991年,主营业务银行与保险业务,在全球45个国家和地区拥有分支机构,总资产887亿欧元(2018),全球53,000多名员工,拥 ...

  9. 敏捷转型谁先动:老总,项目经理or团队

    摘要: 敏捷转型成功的企业究竟是从老总开始?还是从项目经理开始?还是团队本身具有这种意识?相信还有很多想要转型敏捷的公司都存在这样的疑问. 从06年首届敏捷中国开发者大会召开到现在,敏捷方法在国内的应 ...

随机推荐

  1. apply的妙用

    有一个很常见的问题"call和apply的区别是什么?",大家都知道答案:它们的区别仅在于接受参数的方式不同,传递给call的第二个参数必须逐个列举出来,而传递给apply的第二个 ...

  2. Shellinabox安装及使用教程

    本文转载自: shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 一.shellinabox简介 通常情况下,我们在访问任何远程服务器时,会使用常见的通信工具如OpenSSH和P ...

  3. Python3利用Dlib19.7实现摄像头人脸识别的方法

    0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的: 可以自动从摄像头中抠取人脸图片存储到本地,然后提取构建 ...

  4. 表空间(TableSpace)

    我们知道Oracle数据库真正存放数据的是数据文件(Data File),oracle表空间(tablespace)实际上是一个逻辑的概念,在物理上是并不存在的,那么把一组data files捻在一起 ...

  5. 连接到 Azure 上的 SQL Server 虚拟机(经典部署)

    概述 本主题介绍如何连接到运行于 Azure 虚拟机的 SQL Server 实例. 它介绍了一些常规连接方案,并提供了在 Azure VM 中配置 SQL Server 连接的详细步骤. Impor ...

  6. 排查 Azure 虚拟机的远程桌面连接问题

    与基于 Windows 的 Azure 虚拟机 (VM) 的远程桌面协议 (RDP) 连接可能会因各种原因而失败,使用户无法访问 VM. 问题可能出在 VM 上的远程桌面服务.网络连接或主计算机上的远 ...

  7. C++学习笔记——C++简介

    1.C++发展史 C++语言来源于C语言,在C语言的基础上增加了面向对象设计的要素从而得到了发展. 1979 年,C++ 是由 Bjarne Stroustrup在新泽西州美利山贝尔实验室开始设计开发 ...

  8. HTML后续

    列表标签 <ul>.<ol>.<dl> 列表标签 无序列表 属性: type="属性值".属性值可以选: disc(实心原点,默认),squar ...

  9. ppt基本操作

    一.概述及作用 ppt是一种表达用户思想的有力工具,无论是介绍一个计划,介绍一个新的产品,或是员工报告,员工培训,只要事先做一个演示文稿,那么阐述的过程就会变得见面,简明和清晰. 二.界面构成 演示文 ...

  10. cygwin64-安装包管理工具

    1.dos command, install pkg $ setup-x86_64.exe -q -P curl $ setup-x86_64.exe -q -P lynx 2. cygwin64 c ...