怪兽电力公司研制了一套“孩卧溜”系统(即“孩子卧室溜入”系统)给怪兽世界供电——在夜深人静的时候,一个个怪兽惊吓师们通过该系统各自从孩子们的卧室衣橱门溜到床头,把孩子们吓得大叫,然后该系统就能把孩子受到惊吓所发出的尖叫声变成电流来供电。怪兽们普遍认为人类孩子周身充满剧毒,碰一下就能致命,所以惊吓师是一个高风险的职位。另外人类孩子的胆子似乎越来越大,这种发电方式难以为继。于是公司总裁五眼螃蟹怪开始伙同惊吓师变色龙,企图绑架人类孩子并实施酷刑来发电。公司业绩最好的惊吓师蓝毛怪和助手独眼豆一起揭穿了这个阴谋,并联手赶走了前任总裁五眼螃蟹怪和变色龙。蓝毛怪还凭借想出了利用孩子的笑声来更高效地发电的主意,成为怪兽电力公司的新任总裁。
蓝毛怪在总裁位置上干了没多久,就开始厌倦了每天看报表的总裁生活,于是就把总裁的职位让给了原先负责归档的鼻涕姐,然后自己又回去做以前的老本行——“惊吓师”。虽然电力公司现在的发电方式已经从原来的“吓孩子惊叫”变成“逗孩子大笑”,但“惊吓师”及“惊吓楼层”(即惊吓师们从一个个孩子的衣橱门各自进入孩子卧室进行发电的车间)这些名称还是一直保留了下来。
鼻涕姐上任新总裁后,就决定要升级公司现有的“孩卧溜”系统到2.0。她认为,该系统现有的1.0版本只支持从孩子卧室衣橱门溜入以逗孩子大笑来发电,这只覆盖了有“衣橱门”的孩子,但还有很多孩子的卧室没有衣橱,这就失去了溜入这些孩子家去发电的机会。而没有衣橱的孩子卧室一般会有抽屉或镜框,所以可以改造现有系统,来让怪兽们能在半夜从抽屉或镜框里爬进这些孩子卧室去逗孩子。
以前在“儿童探测局”这样传统的组织里工作多年的霸道总裁鼻涕姐,一上来就为“孩卧溜”2.0主持制定了一个宏伟的3年计划,其目的就是在维持原有的“衣橱门”市场的基础上,同时进军“抽屉”市场和“镜框”市场,从而创造更多的发电机会。
“孩卧溜”2.0团队的核心成员有6个怪兽[1]:
总裁“鼻涕姐”
惊吓师兼项目经理“蓝毛怪”
业务分析师“蛇发妹”
开发工程师“独眼豆”
测试工程师“雪怪”
运维工程师“三眼怪”
鼻涕姐所启动的这个“瀑布式”的3年计划是这样安排的——第1年是调研和设计,第2年和第3年上半年是实现“抽屉”和“镜框”溜入功能,第3年下半年是集成测试和上线。
现在时间已经到了第3年的年底,原先安排的半年集成测试已经过去了5个月,在集成测试中发现了各种软件和硬件缺陷。团队已经连续5个月每天加班救火来修复这些缺陷,但“按下葫芦浮起瓢”,修复缺陷的速度赶不上新增缺陷的速度。眼看系统无法保质保量如期上线,蓝毛怪不得不向鼻涕姐请求项目延期半年。
为了找到解决团队困境的方法,独眼豆和女友蛇发妹利用周末一起参加了“骚窝”软件开发咨询公司在怪兽世界的办公室所组织的敏捷和精益工作坊。他们通过其中所玩的“翻硬币”游戏,悟出解决问题的方法就是“串行小批量持续交付”。于是独眼豆和蛇发妹决定利用团队在寿司店聚餐的机会,让大家也一起玩这个游戏,让团队的怪兽们也认同这个理念。
怪兽寿司店一到晚上总是生意兴隆,大厨章鱼怪还像往常一样,在店堂中心醒目的位置忙着表演如何用8只爪子挥舞着4把菜刀在连切带卷16份寿司。蓝毛怪、蛇发妹、独眼豆、雪怪和三眼怪一行5怪鱼贯而入走进了寿司店。
“唉,这次聚会还是没有把鼻涕姐请来。她总是喜欢看公司的各种报表,好像从那里就能翻出人类孩子的笑声来发电似的!”独眼豆进了寿司店一坐下来就开始抱怨。
“就是!要发更多的电就得去找更多的新孩子逗他们乐!但咱们这个破系统开发了快3年,到现在还没上线。害得我每晚只能反复从那么几扇衣橱门进去,反复逗那么几个孩子乐。逗他们的把戏已经反复用了好几遍了,厌烦得他们见了我就要入睡了。快点给我找些只有抽屉的新孩子吧!否则我要像过去那样去吓唬他们啦!”蓝毛怪一边举着菜谱做鬼脸一边说。
“把菜谱给我,我要点榴莲冰激凌!”雪怪从蓝毛怪手里抢过了菜谱,接着说:“蓝毛怪你还能从孩子卧室返回我司惊吓楼层就算很不错了。我这几个月在测试环境里测试新的抽屉和镜框的溜入功能,去孩子家到还可以,但要回来就难了。有好多次要回来时发现打不开抽屉和镜框。更气怪兽的是,有好几次孩子在后面追我,我好不容易打开了抽屉要回来,结果发现不是回到惊吓楼层,而是又进入另一个熊孩子的卧室里去了!要知道,人类孩子身上可是遍布致命病菌的,沾上身可就没命啦!”
“下次记得带半打榴莲冰激凌去哄孩子,哈哈!”蛇发妹在一旁打趣说,“话说咱们开发这个抽屉和镜框溜入功能也快3年了,但和原来的衣橱门溜入功能相比,到底能不能多发电?这还是个问题。”
“这个只有等新系统上线后才能知道了。”忙活一整天在各种测试环境上救火的三眼怪在一旁喃喃自语。
独眼豆看到大家都吐完槽了,就瞪着大眼睛说:“开发慢、质量差、价值不确定,这是咱们开发3年来遇到的3大问题。你们知道解决方法是什么吗?”
“是什么?”大家都好奇地问。
“串行小批量持续交付!”独眼豆打了个响指说。
“串行?小批量?持续交付?这3个词儿貌似我都懂,但搁在一起就不懂了。真的能解决咱们那3个问题?”三眼怪转着3个圆眼睛说。
“等吃完寿司,咱们一起玩个翻硬币游戏吧,玩完后你们就懂了。”独眼豆说着把早已准备好的20枚放到餐桌上。
不一会儿,怪兽们吃完了寿司。独眼豆请服务员把5张餐桌摆成一条线,然后自己拿着那20枚硬币坐到最外面的桌子旁,对众怪兽说:“咱们现在玩翻硬币游戏啦。我需要4个角色:业务分析、开发、测试和运维。你们谁愿意当业务分析师?”
“我来!我早干腻了测试了!”雪怪立刻答应道。
“好!你做那头第一张桌子。”独眼豆指着最靠近里面的那张桌子示意雪怪坐下,“谁愿意当开发?”
“我当!过把写代码的瘾!”蓝毛怪抢着回答,然后挨着雪怪边上坐下。
“谁愿意当测试,挨着蓝毛怪坐?”独眼豆接着问。
“我当测试!测试一定比运维有意思多了。”三眼怪挨着蓝毛怪坐下了。
“好了蛇发妹你没得挑了,挨着我坐当运维吧。”独眼豆笑嘻嘻地拉着女友蛇发妹坐在自己身边,蛇发妹和头发上的几条小蛇都一起给独眼豆抛了几个媚眼儿,独眼豆接着说,“我当用户。“
看到众怪都坐好了,独眼豆请蛇发妹把20枚硬币传给另一头的雪怪,然后从包里拿出一个夹子、纸和笔,画了下面的表,立在桌上。
业务分析师(雪怪) | 开发工程师(蓝毛怪) | 测试工程师(三眼怪) | 运维工程师(蛇发妹) | 用户(独眼豆) |
---|---|---|---|---|
20枚硬币 |
“下面我要介绍一下这个游戏的规则,请各位把手机掏出来,调出秒表的功能。”独眼豆也掏出了手机,“这个游戏模拟咱们‘孩卧溜’2.0的工作流程,工作从业务分析开始,每个角色完成后就把工作往下游传递,依次传给开发、测试、运维,最后交付给我这个用户。”
“工作是什么呢?”蓝毛怪问。
“工作就是翻20枚硬币,只能用左手一枚一枚地翻,不能两手同时翻。把20枚每枚都翻完一次后,就算完成工作,可以传给下游了。”独眼豆说。
“怎么计时呢?”雪怪问。
“每位只计自己翻硬币的时间,不用记别的怪兽的。从自己翻第1枚开始,到自己翻完第20枚为止。我作为用户也计时,从业务分析师翻第1枚开始,到我收到第1枚和最后1枚为止。”独眼豆说。
“第1枚和最后1枚?如果是20枚一起传给你,那岂不是两个时间是一样的?”三眼怪转着3个眼珠说。
“对,这一轮咱们是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枚一批连续翻会提升局部指标,但用户却要慢近一倍的时间来收到产品,得不偿失。”独眼豆说。
“啊!下次我和鼻涕姐沟通项目进度,就不提你们每天的工作小时数和出勤率了,我只告诉她全局指标。”蓝毛怪一拍胸脯信誓旦旦地说。
“噢耶!”众怪欢呼起来。
“要想让全局指标好看,必须要把批量减小。比如咱们这次‘抽屉’和‘镜框’两个特性在一起上线就批量太大了,最好串行地一个个上线。比如先上线‘抽屉’。”独眼豆说。
“好主意,我明天就去改计划。”蓝毛怪迫不及待地拍着桌子说。
“除了这三点启示,还有其他启示吗?”独眼豆接着问。
众怪们又开始转动眼珠。
“如果咱们玩游戏的时候没有用秒表计时,还能得出上面的启示吗?”独眼豆问。
“持续度量!除此之外小批量交付还有两点启示——批量小就便于定位和修复软硬件缺陷,有助于提升产品质量;批量小还能尽早让用户使用已经交付的那部分功能,以便尽早验证新功能是否有价值,这样就能知道‘抽屉’功能是不是有价值。”蛇发妹一边说,一边把写有那六条启示的便签放到大家面前。
翻硬币游戏启示
“今晚太有收获了!看来小批量交付能解决前面说到的‘开发慢、质量差、价值不确定’的问题。可惜鼻涕姐没来。我打算根据这些启示修改一下咱们的上线计划,比如把批量减小串行地上线,设定新的全局指标来度量价值的流动。明天咱们可以一起开会讨论一下,然后再找鼻涕姐谈。”蓝毛怪兴奋地对众怪说。
“嗯,很棒!”独眼豆又一次竖起来大拇指,“不过,怎样让鼻涕姐这个霸道总裁转变观念呢?”独眼豆若有所思地看着大厨章鱼怪在麻利地收拾厨具……
“啊!光顾着想启示,我的榴莲冰激凌都化啦!”雪怪哭丧着脸喊道。