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

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

(图一)

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

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

而“工作的软件”高于“详尽的文档”也就是这个意思。这里的软件就等同洗衣机,详尽的文档等同于使用说明书,软件的可用性是第一位的,详尽的文档是其次的。同样,在软件开发中,开发团队的重心应该是放在如何保证软件的可用性,而不是思考如何写一个完美的文档。例如:增加软件异常行为监控,增加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. 前端之困 · XSS CookBook

    方法论 发掘漏洞的时间要具体到是检测什么目标了,找 Google 的,和找腾讯的时间肯定不会一样. 至于是如何发现的,不同类型的 XSS 漏洞,可能不尽相同. 反射型 以及一些 DOM 型,一般建议是 ...

  2. 如何在FineReport中解析数据库内XML文件

    在数据库表中,其中字段XML所存的为xml格式数据在表xmltest中.那么在使用该表进行报表制作时,需要将存于xml字段中的值读取出来作为报表数据源. XML每条记录数据格式如下: <Fiel ...

  3. Python FFT (Fast Fourier Transform)

    np.fft.fft import matplotlib.pyplot as plt import plotly.plotly as py import numpy as np # Learn abo ...

  4. vue学习(一)、Vue.js简介

    Vue.js 五天 汤小洋一. Vue.js简介1. Vue.js是什么Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0 是一个构建用户界面的框架 ...

  5. 如何提高Ajax性能

    1.适当使用缓存机制 2.使用CDN内容分发来访问Jquery脚本: (1)自己公司架设CDN服务器 (2)使用第三方公司的,比如微软,谷歌等公司的CDN,但有时候不太靠谱 3.JS/CSS文件的打包 ...

  6. oracle 大表 已有大数据量 建索引防卡 nologging

    create index idx_th_user_info_fans_name on th_user_info(fans_name) nologging;

  7. 删除 maven仓库,更新失败的jar包命令

    set REPOSITORY_PATH=D:\maven_cpbsrem ص‎شعثرث÷...for /f "delims=" %%i in ('dir /b /s " ...

  8. oracle给用户分配特定用户下特定表的只读权限

    以下是测试过程,测试环境oracle 11.2.0.3 linux平台: 模拟将HR用户下的employees表的只读权限非配给test_ycr创建用户:SQL> create user tes ...

  9. Mac快捷锁屏设置

    Mac快捷锁屏设置: 1. 安全性与隐私 - 通用:进入睡眠或开始屏幕保护程序 --> “ 立即 ”. 2. 桌面与屏幕保护程序 - 触发角:启动屏幕保护程序 注:第二步中触发角可以设置四个角中 ...

  10. GET POST 传值与接收案例

      第一种:GET传递 前台 ajax   GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: fu ...