从苏伊士运河被堵,理解设计中的“冗余”
编辑导语:如果仔细观察,我们会发现无论是在生活中,还是工作中,冗余是随处存在的,没办法完全避免。冗余其实并不完全是一件坏事,它可以提高容错率、对抗不确定性。假如在设计中可以处理好冗余,那么可能会取得意想不到的效果。
一、冗余不总是坏事
冗余:多余的重复或罗嗦话。——《汉语词典》
大部分人提到“冗余”,都会觉得这是一个贬义词。
冗余代表着多余、重复,与大部分人所追崇的“简洁优雅”、“Less is more”的理念相对立。程序员们也经常说到“代码冗余”这个词:明明一行代码能搞定的事情,非要花十行代码,往往让人不能容忍。
但其实冗余并不完全是坏事,一些包含冗余的设计往往能提高系统的容错率和对抗意外情况。更优雅的设计往往是在冗余和效率之间取了一个平衡,而不是完全消除冗余。
二、冗余的作用:提高容错率、对抗不确定性
我们在生活和工作中其实经常遇到各种各样的冗余存在,这是系统提高容错率、对抗不确定性的必要手段。
- 例如:虽然一个肾脏就能完成全身的代谢功能,但人还是有两个肾脏,当其中一个不起作用时,另外一个则会顶替(内容冗余);
- 例如:在做项目排期时,我们往往会预留多一些时间,当有紧急事情发生时也能从容应对(时间冗余);
- 例如:我们去乘飞机或火车时,往往也会提前半小时到达车站,以防路上拥堵或安检时间过场导致错过航班(时间冗余);
- 又比如:我们买鞋子不会刚好跟自己脚的大小一模一样,而是往往多出一些空间,也是为了在做一些特定动作时不会觉得挤脚(空间冗余)。
简单的说,冗余就是多出来一些额外的、看上去可能用不上的东西;但在必要的时候又能起到作用,从而提高容错率或应对一些不确定事件。所谓冗余,就是不追求资源的最大化利用,通过资源的合理配置,使得整个系统可以应对多种情况,在各种环境下也更具弹性。
三、没有冗余的系统通常非常脆弱
图1:苏伊士运河拥堵,图片来自网络
3月23日在苏伊士运河,台湾长荣集团的“永恒吉文号”货轮因为强风吹袭,导致船身偏离航道,意外搁浅。将整个苏伊士运河两边的船舶都堵死,据说每小时造成约4亿美元的经济损失。
造成这种灾难的原因,除了意外的天气,很重要的一点就是:这条运河的宽度设计的恰好够用,运河的宽度仅有205米,船的长度是400米,正常直着运行是没问题,但当船只斜过来时,整个运河都将被卡主。
这种设计从经济上来看效率很高,但缺点就是容错率很低。遇到风暴等意外情况,极其缺乏反脆弱的能力,也最终导致无法正常运转。
四、如何使用冗余?
产品经理在项目管理和产品设计中,也可以使用冗余的方式来提高容错率、降低风险以及将重要信息有效传递给用户。
1. 项目管理中的冗余
图2:项目管理中的冗余
首先是在项目的时间管理或排期上,有条件的情况下最好多预留一些时间,以防不确定的事件发生好从容应对。从经验上来说,经常出现的情况是”技术人员在评估工作量后,项目经理或产品经理对其进行压榨,希望缩短工作量。
这样通常会导致排期时间十分紧张,开发进度非常赶,测试质量也会下降,最终往往也无法按时上线。之前我公司的开发人员甚至还出现了“把需求当Bug提”的情况。
同样,在重要的项目上人员安排上也要考虑冗余,当一个员工因为各种原因无法继续工作,或有计划外的工作出现时,另一个员工可以顶替。
有的公司喜欢让员工120%的效率拉满干活,但有紧急的事情出现时,员工往往就没有足够的时间去处理。这种问题在传统生产企业中很常见,一个岗位只招聘一个员工,那么这个员工一旦请假或离职,那么整个生产线都将受到影响。
此外,我们考虑产品方案和计划时,往往也需要准备Plan A、 Plan B甚至Plan C。当一种方案不奏效,另一种方案可以顶替上来。做增长实验,除了AB测试以外,在有条件的情况下“ABCEDFG测试”都是可行的。看似冗余的规划,其实是为项目的成功买了一份保险。
2. 产品设计中的冗余
产品设计中最常见的是通过内容冗余的设计,来保证将重要信息有效传递给用户。更优雅的方式则是在不浪费且不影响用户体验的情况下,达成这种目的。通过冗余来传递内容的方式主要有:“ 同类冗余”、“可变冗余”和“被动冗余”三种。
图3:产品设计中的冗余
1)同类冗余
同类冗余是指通过同样的方式多次传递同一个信息。
例如在某些游戏中,会有一个小助手或者旁白,一直在用同样的话术提示用户做某件事情。或者某些相亲交友软件中,在用户做任何操作时都会提示用户去完善个人资料,并且提示的弹窗都一模一样,这是典型的同类冗余。这种手段经常在产品强烈希望用户做某事时使用。
2)可变冗余
可变冗余是指通过不同的方式多次传递同一个信息,这在游戏设计中很常见,比如一个3D真人冒险游戏中为了引导玩家跳出窗户逃离。
那么一方面可以通过NPC的手势或者语言“来,从这跳!”;同时可能也会在窗户上放一块明显的木板,引导用户从这里跳;又或者通过光影的特效,或者视角的移动,让用户的目光锁定在窗户上等等。
总之是同时采用不同的手段,向用户从传递“从窗户跳出去逃生”这一信息。在流利说少儿英语的产品中,也有通过设计可变冗余,用不同的手段来劝用户不要在课程中途退出。
用户每次点击弹窗时都会提示用户退出带来的影响,但每一次弹窗的内容都不相同,比如可能是说“中途退出会影响获得金币”,也可能提示“中途退出学习效果会很差”之类的。
图4:MarryU会员弹窗
又比如图4中,MarryUApp在提醒用户付费的弹窗设计中,用户点击不同的付费功能,弹出的付费引导内容是不同的。这也是采用可变冗余来传递“会员很有价值”这同一种信息。
采用这种可变冗余传递信息的好处是,当一种传递方式不奏效时,另外一种方式可能会奏效。
3)被动冗余
被动冗余通常是当用户完全错过某一个信息后才会触发,这种设计对用户的影响最小,即用户不会感知到太多重复内容。
例如在游戏中,只有当用户完全错过了某个NPC之后,第二个NPC才会对用户说出前一个NPC本来要说的信息。但如果前一个已经说过,那么第二个NPC就不会再重复说一遍了。这样用户同样得到了信息,但是没有感觉到重复。
在使用以上冗余设计时,我们还需要区分清楚用户是没有漏掉了信息,还是故意无视信息的。如果是故意无视,那么过多冗余的设计反而会造成用户的厌烦心理。
五、总结
冗余并不是坏事,生活中、项目管理上、产品设计中都可以考虑使用冗余来增强容错率和抵抗一些未知风险。
- 冗余的设计能够提升系统容错率和应对不确定性。
- 项目管理时的时间冗余、人员冗余和方案冗余可以让项目具有更强的反脆弱性和更高的成功率。
- 产品在传递内容时可以采用固定冗余、可变冗余和被动冗余的手段巧妙结合,在保证用户体验的情况下将重要信息传递给用户。
产品设计中往往需要在尽可能不影响效率的情况下通过一些冗余让系统运转更加稳定。感谢阅读,在产品设计中大家哪些其他冗余的例子也可以在评论区一起分享讨论。
本文由 @爱学习的Keyda 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
很简单的一件事情,有必要讲这么玄乎么