转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)
 

 
作者简介
 
Ollie Guan,携程PMO高级项目集经理,负责敏捷总动员及携程技术中心PMO微信公众号运营。上海AUG Leader,Atlassian Community Champion,Top 10 super-contributors。
 
 
Why ?
 
 
做技术同学们都知道,在项目初始阶段我们会对需求、任务进行估算,估算往往很花时间,更要命的是总做不到准确。既然这个值即不准,又花时间,那为什么还要做估算呢?
 
  • 对于用户:用户需要一个这样的预期(甚至是承诺),什么时候才能用上这个功能;
  • 对于管理者:管理者需要这个估算来做决策,包括调整工作优先级、人员调整、甚至是否砍掉这个功能等;
  • 对于团队自己:不仅是团队内的合作,还包括团队之间的合作(如联调的时间的确定),都需要基于估算给出。
 
除了上面这三个角色对估算的期望之外,估算还有一个重要的价值,那就是在估算活动中大家对需求能够趋向达成一致的理解,减少一些被忽略的假设和背景。所谓“磨刀不误砍柴工”,在估算上花费的时间是值得的。
 
What ?
 
 
扑克估算,顾名思义,我们在估算的活动中加入了扑克这套工具。
 
传统估算通常是一个人在思考,而扑克估算鼓励跨职能团队的多个团队成员参与,团队成员可以从不同的视角来思考和分析问题,考虑更加全面、估算也更加准确。
 
使用估算扑克来做估算基于两个结论:
 
  • 团队的智慧要高于某一个人的智慧;
  • 真正参与工作的人做出的估算要高于其他人做出的估算。
 
在估算的过程中,团队对估算的结果进行讨论和评判,在一个高度透明的环境下,估算的结果更加真实和客观。这样也避免了很多时候过于武断,或是拍脑袋做出的决定。
 
估算的过程也是一个知识分享和学习的过程,对某一个被估算的Backlog不清楚的成员通过其他成员的阐述会增加他对此Backlog涉及到的要点的认识。
 
Who ?
 
在常见的Scrum团队中,包含了PO、Scrum Master、Dev Team几个角色,扑克估算的过程Dev Team全员参与
 
  • PO 负责讲解需求
  • Scrum Master 负责主持估算活动
  • Dev Team 全员参与估算
 
 
When ?
 
扑克估算是几个潜在的任务承担者共同估算的方法,他们一起听PO讲解,一起估算,以达到用集体的智慧解决问题的目的。
 
 
这项估算活动一般是在Refinement Meeting上进行,PO为Dev Team按优先级逐个讲解需求,当团队成员确认对该Backlog完全了解,无任何重大问题后,大家开始对该Backlog进行估算。
 
How ?
 
 
传统的估算单位一般是小时或是人天,敏捷估算中推荐的是使用相对估算的方式,用故事点(story point)作为单位。
 
相对值的故事点到底有什么好处呢?
 
人类天生更擅长相对值的比较,相对值的估算会更快,小时和人天受限于任务实际执行者的能力水平,在估算时引入这个不可控的变量会让估算活动更加复杂和达不成一致。
 
 
现在大家看到的这张图是由携程技术中心PMO定制的估算扑克
 
牌面上印有供估算使用的数字与符号,数字分别是,0,1/2,1,2,3,5,8,13,正无穷大,?,咖啡杯等,此外我们把敏捷的一些文化,活动,实践方法,名词解释等内容印在扑克的卡面上展示。
 
 
细心的同学可能发现了,估算数字并不是一串连续的自然数,而是使用了斐波那契数列。这是因为当一个用户故事越复杂,我们估计值越大的时候,估算结果的准确性也就越低,这个时候再去纠结它的点数是13还是14已经没有意义了。为了避免没有意义的数字争论,以及提醒我们这个用户故事可能太大需要再次拆解,所以才使用了步长越来越大的斐波那契数列。
 
在实际操作中,一些团队内部会规定超过13的用户故事必须再次拆分。
 
 
扑克估算过程简述:
 
  • 每人各自估算后独立出暗牌,听口令一起亮牌;
  • 数值最大与最小者PK,其他人旁听也可以参与讨论;
  • 讨论结束后重新出暗牌和亮牌;
  • 重复上述过程,直到结果比较接近。
 
小贴士
 
Q:为什么每个人都要参与出牌,即便他可能对这个功能并不熟悉?
A:团队共同参与,使得每个人都不得不思考,因为怕出错了牌又说不出所以然。这样即使日后他不做这个功能,也对这个功能很了解。    
 
Q:为什么不让最后领任务的人自己估算?
A:因为他可能不知道某段代码可复用,不熟悉某项技术而选择了错误的实现方法,正如前文所述“团队的智慧要高于某一个人的智慧”。
 
Q:为什么不让团队里的专家做估算?他不是最厉害吗?
A:共同估算就是让大家在思考中对照自己的实现方法和专家差异的过程。
 
Q:PO是否参与估算?不是不让Dev Team以外的人干预吗?
A:PO可以挑战估算,但要有理有据。现实中团队往往过于激进乐观,PO反而要让团队意识到完整的需求和要求,做出更现实的估算,估算不准确,PO也有责任。
 
编者按
 
或许您刚完成一个敏捷项目,另外一个团队希望您能加入去帮助他们。当然,每个项目都是不同的。那么,您上次使用的实践会在这个项目中同样有效吗?不一定!这本书将帮助您了解为什么“不一定”,然后决定什么实践应该采纳,同时对于哪些实践需要调整,如何做调整也会给出一些提示。
 
关注“携程技术中心PMO”公众号
回复“模式”获取《敏捷实践实施模式》电子版
 
 
 
更多视频
 
 

部分图片及电子书来源于网络,版权归原作者所有,仅供学习勿作它用。如果侵犯到您的权益,请联系我们撤除。

 

携程PMO--扑克派对,我的估算我做主!的更多相关文章

  1. 携程PMO--小罗说敏捷之WIP限制在制品

    转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)         WIP是什么?   WIP(work in progress)指的就是工作中心在制品区.在经过部分制程之后,还没有 ...

  2. 携程机票的ABTest实践

    携程ABTest伴随UBT(User Behavior Tracking System)系统一起,两年多的时间,从最初online寥寥几个实验,到现在单是机票BU每周就有数十个app/online/h ...

  3. 携程PMO--如何召开卓有成效的回顾会

      话题介绍   回顾会提供团队反思迭代过程并提出改进措施的机会.回顾会是团队成员共同进行的协作活动,让团队成员跟进并落实改进措施,使团队在下一个冲刺中更高效,这是相当重要的.   我们给出了回顾会的 ...

  4. 敏捷之旅--携程行程&订单团队

    转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)     关于我们   我们面临的挑战   敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.先把一个大项目分 ...

  5. 微信小程序体验(1):携程酒店机票火车票

    在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...

  6. 携程App的网络性能优化实践

    首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一 ...

  7. 实现携程X分钟前有人预定功能

    实现携程X分钟前有人预定功能 原理:利用cookie与计时器两部分: 首先,进入页面,x会被随机数赋值,赋值后x会一分钟加1,直到加到60,再从1开始累加. 页面是否相同是根据页面的url后的id值判 ...

  8. 今天携程出事了:让我们来学习下http的响应码

    就在今天,2015年5月28日,中国最大的旅游机票预订网站--携程网粗大事了.据传携程网的数据库被人物理删除了,而容灾备份的数据又无法正常使用,服务器全面遭受瘫痪.每小时给携程带来的损失约100万美元 ...

  9. 携程Ctrip DAL的学习 2

    携程Ctrip DAL的学习 2 本人net开发菜鸟,原理请自行看github的官网源码. 我这里是简单的使用(helloworld的水平). 代码生成器的使用 详见 官网使用说明 注意的地方: 1 ...

随机推荐

  1. 面试阿里被“吊打”,一问Spring三不知,半年后二战终拿下offer

    Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发. 近两年来,许多大厂在面 ...

  2. html代码/如何做到有横线无竖线的表格/或横线有颜色/竖线没颜色

    改变它的css样式,table{ border-collapse:collapse;}table tr td{ border-bottom:1px solid #dedede;}

  3. 监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

    第7周第2次课(5月8日) 课程内容: 10.6 监控io性能 10.7 free命令10.8 ps命令10.9 查看网络状态10.10 linux下抓包扩展tcp三次握手四次挥手 http://ww ...

  4. 对Java单例模式 volatile关键字作用的理解

    单例模式是程序设计中经常用到的,简单便捷的设计模式,也是很多程序猿对设计模式入门的第一节课.其中最经典的一种写法是: class Singleton { private volatile static ...

  5. 漫谈LiteOS之开发板-GPIO(基于GD32450i-EVAL)

    [摘要] 本文主要从GPIO的定义.工作模式.特色.工作场合.以及GD32450i-EVAL开发板的引脚.对应的寄存器以及GPIO的流水灯示例对GPIO加以介绍,希望对你有所帮助. 1定义 GPIO( ...

  6. (转)oracle视图详解

    Oracle视图详解   一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的.视图只有逻辑定义.每次使用的时候,只是重新执 ...

  7. nitacm第十六届浙江大学宁波理工学院程序设计大赛总结

    校赛时间:2019.11.30周六下午12:00-16:00 重现赛链接:https://ac.nowcoder.com/acm/contest/2995#question 体验: 11点多到达石鳞大 ...

  8. 2018 ACM-ICPC南京区域赛题解

    解题过程 开场开A,A题shl看错题意,被制止.然后开始手推A,此时byf看错E题题意,开始上机.推出A的规律后,shl看了E题,发现题意读错.写完A题,忘记判断N=0的情况,WA+1.过了A后,sh ...

  9. Linux(CentOS)安装SQL Server

    1.下载Microsoft SQL Server Red Hat 存储库配置文件 curl -o /etc/yum.repos.d/mssql-server.repo https://packages ...

  10. 【consul】使用学习

    [consul]使用学习 转载:https://www.cnblogs.com/yangchongxing/p/10653791.html 1.下载 consul https://www.consul ...