软件开发团队玩翻硬币游戏

我把5张餐桌摆成一条线,然后拿着那20枚硬币坐到最外面的桌子旁,对开发团队众人说:“咱们现在玩翻硬币游戏啦。我需要4个角色:业务分析、开发、测试和运维。你们谁愿意当业务分析师?”

“我来!我早干腻了测试了!”雪立刻答应道。

“好!你做那头第一张桌子。”我指着最靠近里面的那张桌子示意雪坐下,“谁愿意当开发?”

“我当!过把写代码的瘾!”蓝抢着回答,然后挨着雪边上坐下。

“谁愿意当测试,挨着蓝坐?”我接着问。

“我当测试!测试一定比运维有意思多了。”山挨着蓝坐下了。

“好了发你没得挑了,挨着我坐当运维吧。”我笑嘻嘻地拉着发在自己身边,接着说,“我当用户。“

看到众人都坐好了,我请发把20枚硬币传给另一头的雪,然后从包里拿出一个夹子、纸和笔,画了下面的表,立在桌上。

业务分析师(雪)

开发工程师(蓝)

测试工程师(山)

运维工程师(发)

用户(我)

20枚硬币

“下面我要介绍一下这个游戏的规则,请各位把手机掏出来,调出秒表的功能。”我也掏出了手机,“这个游戏模拟咱们的工作流程,工作从业务分析开始,每个角色完成后就把工作往下游传递,依次传给开发、测试、运维,最后交付给我这个用户。”

“工作是什么呢?”蓝问。

“工作就是翻20枚硬币,只能用左手一枚一枚地翻,不能两手同时翻。把20枚每枚都翻完一次后,就算完成工作,可以传给下游了。”我说。

“怎么计时呢?”雪问。

“每位只计自己翻硬币的时间,不用记别人的。从自己翻第1枚开始,到自己翻完第20枚为止。我作为用户也计时,从业务分析师翻第1枚开始,到我收到第1枚和最后1枚为止。”我说。

“第1枚和最后1枚?如果是20枚一起传给你,那岂不是两个时间是一样的?”山转着眼珠说。

“对,这一轮咱们是20枚一个批次往下传,所以这两个时间是一样的。”我说,“还有问题吗?翻硬币时不要着急,按照你最舒服的速度翻就行了,别搞得像赶火车似的。没有问题的话就准备好手机秒表,别忘了计时,我数3、2、1就开始了。”

雪把20枚硬币摊在面前,众人都准备好了手机秒表。

“3……,2……,1,开始!”我和众人都按下了秒表。雪开始一枚枚翻硬币,由于过度紧张,有一个硬币差点滚到地上。20枚翻完后就传给蓝,蓝直接伸出两只大手一起翻,让我给及时制止了:“只能左手一只手翻!”20枚硬币很快翻完,传给了山,又传给了发,最后到了我面前。“上线!”我按完秒表的停止键后欢呼道,“各位报一下时间吧。业务分析,24秒;开发,22秒;测试,18秒;运维,22秒;我这边第1枚和最后1枚都是103秒。”

我更新了一下夹子上的时间。

轮数

业务分析师(雪)

开发工程师(蓝)

测试工程师(山)

运维工程师(发)

用户(我)第1枚/第20枚

第1轮(20枚/批)

24秒

22秒

18秒

22秒

103秒/103秒

“好,把硬币给雪,咱们玩第2轮。这一轮咱们10枚一个批次玩。雪还是像以前那样翻硬币,但翻完第10枚后,就可以把这10枚传给下游,然后再继续翻剩下10枚。下游每位也是同样10枚一个批次往下传。注意每位计时还是一样,从自己翻第1枚开始,到自己翻完第20枚为止。我作为用户的计时也是一样,从业务分析师翻第1枚开始,到我收到第1枚和最后1枚为止……”我还没说完,山恍然大悟:“啊,这次你的第1枚和第20枚时间就不同了!”

“对!”我向山竖起了大拇指,“没有问题的话就准备好手机秒表,3……,2……,1,开始!”

不一会儿,我把第2轮的时间在夹子上更新了。

轮数

业务分析师(雪)

开发工程师(蓝)

测试工程师(山)

运维工程师(发)

用户(我)第1枚/第20枚

第1轮(20枚/批)

24秒

22秒

18秒

22秒

103秒/103秒

第2轮(10枚/批)

24秒

24秒

26秒

26秒

50秒/65秒

“好,再把硬币给雪,咱们玩最后一轮。这一轮咱们1枚一个批次。雪还是像以前那样翻硬币,但每翻完1枚就可以立即传给下游,然后再继续翻剩下的硬币。下游每位也是同样1枚一个批次往下传。每位计时还是一样,从自己翻第1枚开始,到自己翻完第20枚为止。我作为用户的计时也是一样,从业务分析师翻第1枚开始,到我收到第1枚和最后1枚为止。有问题吗?没有问题的话就准备好手机秒表,3……,2……,1,开始!”

硬币飞快地在众人之间传递。很快,我把第3轮的时间更新在夹子上了。

轮数

业务分析师(雪)

开发工程师(蓝)

测试工程师(山)

运维工程师(发)

用户(我)第1枚/第20枚

第1轮(20枚/批)

24秒

22秒

18秒

22秒

103秒/103秒

第2轮(10枚/批)

24秒

24秒

26秒

26秒

50秒/65秒

第3轮(1枚/批)

41秒

47秒

46秒

45秒

8秒/53秒

启示

“好啦,游戏环节结束。现在该分析这张有意思的表格啦。”我让众人围拢过来坐在一起看夹子上的表格,“先看最后一列,当20枚一批传递时,用户收到第1枚和第20枚都是103秒;当10枚一个批次传递时,用户收到第1枚需要等50秒,收到20枚需要等65秒;当1枚一个批次时,用户只用等8秒就能收到第1枚,只用等53秒就能收到20枚。我问大家,用户同样是收到这20枚硬币,为什么1枚一个批次会比20枚一个批次要快近1倍?”

“因为20枚一个批次,当雪在翻时,后面的人都在等嘛!”蓝说。

“嗯,看人是不是在等待是一个不错的思路。但能不能换个角度来看变快的原因呢?”我环顾大家,看到大家都在滴溜溜转动眼珠思考不说话,就不紧不慢地继续说,“能不能从硬币的角度看?”。

“啊,对呀!当20枚一批时,当雪翻完第1枚后,第1枚就在等;当他翻完第20枚后,前20枚也都在等!”山兴奋地转着眼珠说。

“是呀!当1枚一批时,每个人翻完1枚就能往下传,每枚硬币都没在等,所以速度快了1倍!”发补充道。

众人恍然大悟。

“这能给我们什么启示?至少有两点。第一,把关注的视角从人转移到价值上,与其关注‘让人忙起来’,不如关注‘让价值流动起来’。第二,把大批量拆成可以独立上线的小批量,串行地持续交付,能减少价值在中间环节的等待时间,从而加快整体交付速度。这里我为什么要强调‘串行’和‘交付’呢?”我问。

“因为如果是并行地做多件事,就好比硬币的批量在增加,就慢了嘛,所以要强调‘串行’。如果小批量不能尽快交付给用户,那硬币也会在某个中间环节发生等待,也会变慢,所以要强调‘交付’。”发说。

“赞!”我向发伸出两个大拇指。

“别忘了三次玩儿之间每个角色各自的时间变化。”发提醒我。

“对,我差点忘说了。”我说着把山那列的时间又给描粗了一下。

轮数

业务分析师

开发工程师

测试工程师

运维工程师

用户第1枚/第20枚

第1轮(20枚/批)

24秒

22秒

18秒

22秒

103秒/103秒

第2轮(10枚/批)

24秒

24秒

26秒

26秒

50秒/65秒

第3轮(1枚/批)

41秒

47秒

46秒

45秒

8秒/53秒

“同样是山,同样是翻20枚硬币,为什么第3轮的工作效率最低?”我问。

“因为翻一枚传一枚需要切换时间。”山说。

”对。不仅是你,大家的工作效率在第3轮都是最低的。但每个人都用如此低的工作效率,却令用户享受到快了近一倍的交付速度,这又给我们什么启示?“我问。

众人又陷入沉思。

”这是这个游戏给我们的第三点启示——与其关注局部指标,不如关注全局指标。如果反过来只是追求局部优化,比如20枚一批连续翻会提升局部指标,但用户却要慢近一倍的时间来收到产品,得不偿失。”我说。

“啊!下次我和项目经理沟通项目进度,就不提你们每天的工作小时数和出勤率了,我只告诉她全局指标。”蓝一拍胸脯信誓旦旦地说。

“噢耶!”众人欢呼起来。

“要想让全局指标好看,必须要把批量减小。比如咱们这次‘商品’和‘订单’两个特性在一起上线就批量太大了,最好串行地一个个上线。比如先上线‘商品’。”我说。

“好主意,我明天就去改计划。”蓝迫不及待地拍着桌子说。

“除了这三点启示,还有其他启示吗?”我接着问。

众人又开始转动眼珠。

“如果咱们玩游戏的时候没有用秒表计时,还能得出上面的启示吗?”我问。

“持续度量!除此之外小批量交付还有两点启示——批量小就便于定位和修复软硬件缺陷,有助于提升产品质量;批量小还能尽早让用户使用已经交付的那部分功能,以便尽早验证新功能是否有价值,这样就能知道‘商品’功能是不是有价值。”发一边说,一边把写有那六条启示的便签放到大家面前。

翻硬币游戏启示

  • 启示一:把关注的视角从人转移到价值上,与其关注“让人忙起来”,不如关注“让价值流动起来”;
  • 启示二:把大批量拆成可以独立上线的小批量,串行地持续交付,能减少价值在中间环节的等待时间,从而加快整体交付速度;
  • 启示三:与其关注局部指标,不如关注全局指标;优化局部指标往往会导致损害全局指标,得不偿失;
  • 启示四:持续度量;因为没有度量,就没法改进。
  • 启示五:小批量交付使得软件变动少,便于定位和修复软件缺陷,有助于提升产品质量;
  • 启示六:小批量交付还能尽早让用户使用已经交付的那部分功能,以便尽早验证新功能是否有价值。

“今晚太有收获了!看来小批量交付能解决咱们所面临的‘开发慢、质量差、价值不确定’的问题。可惜项目经理没来。我打算根据这些启示修改一下咱们的上线计划,比如把批量减小串行地上线,设定新的全局指标来度量价值的流动。明天咱们可以一起开会讨论一下,然后再找项目经理谈。”蓝兴奋地对众人说。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老九学堂

程序员的这些脑洞设计,正常人绝对想不到

10730
来自专栏Sign

Dolo上架了~

Dolo上架了~ taptap: https://www.taptap.com/app/77329 ? app store: https://itunes.ap...

302100
来自专栏机器之心

前沿 | 真实版《阿凡达》:韩国研究者用脑机接口控制乌龟

选自KAIST 作者:Cheol-Hu Kim等 机器之心编译 参与:黄小天、李泽南 最近,来自韩国科学技术高级研究院(KAIST)的科学家们开发了一种可以远程...

29570
来自专栏理论坞

互联网术语大全(二)

Adsens:Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商。它可以在网站的内容网页上展示相关性较高的 Google广...

11520
来自专栏挖数

王宝强事件的数据分析

王宝强离婚事件,在全球华人圈刮起了一阵旋风,不仅让王宝强本人的百度搜索指数在1天时间飙升835倍 ? 也让事件的女主角马蓉的微博粉丝从几十万飙升到现在的534万...

29180
来自专栏AI星球

人生总有那么一次冲动想写博客

从2016年3月26日写下第一篇博客开始到如今的第35篇.....虽然算不上高产(只能说是低产~_~!!)。但是,我很庆幸自己写下了第一篇博客,因为这个开始,才...

12620
来自专栏飞总聊IT

如何学习数据库系统知识

不少读者留言提了两个问题: 我能不能多讲讲我的文章里提到的基本概念,比如MPP。或者干脆开个数据库系统基础系列。 怎么样去学习数据库系统的知识。 所以我开贴简...

38050
来自专栏ATYUN订阅号

维基团队与Jigsaw合作审查社区中带有人身攻击的评论

维基百科社区以人身攻击的评论臭名昭著。这个问题非常糟糕,以至于活跃的贡献者或编辑在八年期间下降了40%。尽管没有一个解决方案可以解决这个问题,但支持维基百科的非...

9730
来自专栏机器人网

应用LabVIEW和CompactRIO开发腿轮混合式移动机器人

"对于移动机器人的开发来说,其大小,重量及性能都非常重要,因此坚固的模块化CompactRIO系统非常适合用于开发。 LabVIEW和NI硬件之间定义良好的兼容...

39560
来自专栏顶级程序员

虐哭无数人的烧脑刑侦科推理题,程序员一秒解题

源 / 程序员头条 近日,@江苏网警 发布了一套名为“2018 年刑侦科推理试题”的微博,这条微博发布后,很快就引起了网友的广泛讨论,不少网友直说写满了好几张 ...

34560

扫码关注云+社区

领取腾讯云代金券