前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件开发团队玩翻硬币游戏

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

作者头像
程序员吾真本
发布2018-12-07 17:42:34
9260
发布2018-12-07 17:42:34
举报
文章被收录于专栏:程序员吾真本

我把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枚一批连续翻会提升局部指标,但用户却要慢近一倍的时间来收到产品,得不偿失。”我说。

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

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

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

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

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

众人又开始转动眼珠。

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

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

翻硬币游戏启示

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.11.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档