很多人对于敏捷的第一直觉就是“快”,开发快,测试快,发布快,并不知道如何把这个“快”应用到敏捷实践中,下面我们来分析一下导致工作效率低的核心原因。没有使用敏捷之前,在大多数情况下,项目管理都需要开各种各样的会议,例如:项目立项会、项目需求分析会、技术评审会、项目计划会、测试评审会、项目例会、问题协调会等等。

为了顺利举行这些会议,还需要大量会前会后的沟通工作。可是仔细发现,大部分会议的共同目的都是:确保进度和交付。保证项目进度除了通过这些会议,还会通过电话、邮件和当面沟通交流的方式反复确认,而确认的内容无非就是:

产品经理下周一能够准时交付需求文档吗?

下下周一开发部门能够准时交付完毕吗?

··· ···

无论事前做了多少工作,其实团队成员之间仍然会充满不信任。多年的经验告诉大家——盲目的相信承诺付出的代价会更高。

团队采用敏捷之后,最大的好处就是:你可以相信团队中每个成员,不需要反复确认进度。到了交付的时间,事情就会自动完成。你可能会表示质疑,世界上有这么好的事情吗?不可能?!采用敏捷确实可以做到,这个被称为“刚性交付”。

如何做到刚性交付?请看下图。

粉红色代表参与项目的各个角色,包含四种:产品人员、开发人员、测试人员和运维人员。横方向一至五代表周一到周五的时间。这个图就是代表着团队合作开发过程中整个迭代的全景。通过这张图,团队中每个角色每天的任务都非常清晰。在迭代周期内的第一周周二,就是产品人员内部进行需求讨论。在第一周的周五,开发人员需要安排好设计评审,并且与产品人员和测试人员共同参与设计。然后第二周的五天时间内,开发人员全力开发需求。第三周的头三天进行测试和修改Bug,到了第四、五天可以进行发布。

整个敏捷实施的关键是每个角色都要准时交付自己的任务。团队成员之间不需要花太多的成本来互相确认进度,一切都需要按照迭代运行模式图里的计划按部就班进行。

或许你心中会有疑问:如果某个角色不能按时完成交付任务,应该如何处理?

举个例子:

按照原计划,开发人员需要编写十个需求,但是到了第二周的周五,快要下班的时候,只交付了八个需求,那怎么办?

以敏捷的思想,这个问题的的答案非常清晰,就是按时进入测试和修改Bug阶段,并且只测试已经完成的八个需求,剩下两个没有完成的需求放在下一个迭代里进行。尽管此时此刻在很多产品人员看来,开发人员是没有完成他的工作,说好的十个需求,只完成了八个。

这个延误交付的现象可以从两个角度来解释:

一、说明团队的能力在每个迭代里最多只能完成八个需求。如果团队承认了只能完成八个需求的能力,那么下一个迭代只需要安排八个需求即可。

二、产品需求划分不合理。如果只完成了八个需求的的版本对于用户来说,是完全无法使用的,那么问题的实质在于产品需求划分不合理。

因为敏捷团队总是会把最大的价值需求先完成,那么最后剩下的两个需求价值是最小的,所以不会出现因为两个最小价值的需求反而影响整个版本总体价值的情况。解决这个问题的方法就是提升产品人员对产品需求分解和确定优先级的能力。

如果团队实行刚性交付,会有什么好处呢?

举个例子:

机场附近的一条地铁线最早的班车时间为5:30分,我想大部分人都是没有坐过的。假如你明天早上需要赶飞机,需要乘坐这趟最早的地铁到底机场。请问:你会打电话给地铁公司确认“明天5:30早班车是否会按时发车”吗?

答案是非常明显的:不会,因为你知道他们肯定会准时发车。是什么让你这么相信地铁公司会准时发车?在我们大家的共识里,不管地铁是否有人乘坐、是否挤满了人,地铁永远是按照时刻表运行的。

把每一躺地铁比喻成一次迭代,每一位乘客就是一个需求。需求要不要上车,都是需求决定的,并不是因为迭代决定的,迭代只确保上了车的需求准时发布。如果迭代的地铁里太拥挤,无法容纳更多的需求的时候,唯一的选择就是搭乘下一趟迭代地铁。迭代只会确保上了车的需求准时发布,正是因为这样的运行规定,迭代的地铁可以保证每天海量的需求可以准时交付。

通过要求每个角色实施刚性交付,那么团队内部就可以减少很多内耗,大家逐步建立信任机制,不需要花费时间在电话、邮件和当面沟通上,团队每个角色就可以腾出更多的精力完成自己的任务。就这样形成一个良性循环,整个团队慢慢向好的方向发展。

每个团队根据自身实际情况,制定专属的敏捷迭代运行模式图,敏捷迭代运行模式图需要加入团队中所有的角色。敏捷团队制定正确的敏捷迭代运行模式图后,要根据团队每个角色的执行情况不断进行调整和改进,就能慢慢领略到敏捷的魅力和好处。

所以在今后的敏捷实践中,要清楚,敏捷从迭代运行图开始。首先需要一张敏捷迭代运行模式图,才能保证团队每个角色能够理解迭代运行模式,并且保证刚性交付顺利完成。

系列文章#

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

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总监

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

【腾讯敏捷转型No.5】需求没做完可以发布嘛的更多相关文章

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

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

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

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

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

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

  4. 【腾讯敏捷转型No.3】Scrum有什么好?

    在敏捷转型的过程中,除了敏捷宣言中的四个价值观和十二条原则以外,并没有太多比较权威的理论实践. 如图一,敏捷宣言中的四个价值观: (图一) 四条敏捷核心价值观指出了敏捷的核心思想,但是并没有仔细说明具 ...

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

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

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

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

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

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

  8. 敏捷转型中why与how的总结

    敏捷转型參考框架: 为了成功顺畅地推行敏捷开发.下面将对整个敏捷转型參考框架作个整体说明.为企业进行敏捷转型提供基本方法參考.整个敏捷转型參考框架主要包括5个步骤,前两个步骤主要是回答 Wh y的问题 ...

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

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

随机推荐

  1. 旋转/非旋转treap的简单操作

    treap(树堆) 是在二叉搜索树的基础上,通过维护随机附加域,使其满足堆性质,从而使树相对平衡的二叉树: 为什么可以这样呢? 因为在维护堆的时候可以同时保证搜索树的性质: (比如当一棵树的一个域满足 ...

  2. com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现"$ref":"$[0]"现象问题

    1.今天定义了一个JSONObject对象,引用的com.alibaba.fastjson.JSONObject,循环给这个对象赋值出现"$ref":"$[0]" ...

  3. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  4. MySQL数据库(12)----ALL、ANY、SOME子查询

    运算符 ALL 和 ANY 常与某个关系比较运算符结合在一起使用,以便测试列子查询的结果.它们会测试比较值与子查询返回的全部或部分值是否匹配.例如,当比较值小于或等于子查询返回的每个值时,<= ...

  5. SqlServer数据库(可疑)的解决办法

    当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法, 打开数据库里的Sql 查询编辑器窗口,运行以下的命令. // 1.使用指定值强制重新配置:(1.0表示为真假) sp_configure ...

  6. ASProgressPopUpView

    ASProgressPopUpView https://github.com/alskipp/ASProgressPopUpView 效果: -使用- 将源码拖入工程当中: // // RootVie ...

  7. 搭建spring boot+elasticsearch+activemq服务

    目前时间是:2017-01-24 本文不涉及activemq的安装 需求 activemq实时传递数据至服务 elasticsearch做索引 对外开放查询接口 完成全文检索 环境 jdk:1.8 s ...

  8. selenium+python smtp邮件

    #code:utf-8 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIM ...

  9. 43、ThreadPool 、WaitHandle、原子操作InterLocked

    ThreadPool 创建线程需要时间.如果有不同的小任务要完成,就可以事先创建许多线程/在应完成这些任务时发出请求.不需要自己创建这样一个列表. 该列表由ThreadPool类托管.这个类会在需要时 ...

  10. Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用

    @Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体 ...