有两个水果公司,A和b。
前期水果不多,只有苹果和橘子。
他们给用户做了一个网上订购系统,方便大家买水果。
久而久之,A公司为了和B公司竞争,决定改造他们的点餐系统,于是就把页面改成了这个样子。
系统会根据用户历史购买的水果,智能分析用户喜欢吃什么,然后智能下单购买新的水果。
但目前来看,逻辑还是很简单的,单纯以量来决定。例如,如果用户购买的苹果多于橙子,系统认为用户更喜欢吃苹果,因此它会智能下单让他们购买苹果。
大多数用户几乎都非常喜欢一种水果,所以A公司的系统方便地帮助他们省去填写订单的麻烦。A公司的用户量增加了很多,占领了b公司的市场。
然而,随着时间的推移,水果越来越多,不仅有苹果和橘子,还有香蕉。
买水果的人越来越多,很多人有不同的诉求。比如有的人就是想吃一些以前少吃的水果来平衡饮食。
所以智能点餐的功能已经越来越不智能,很多人倾向于去简单明了的B公司买水果。
A公司看到情况不对,赶紧商量对策,于是增加了一些新功能。
用户可以给之前购买的水果贴上标签,比如点击苹果的[喜欢]按钮和香蕉的[不喜欢]按钮。
然后智能购买后,会优先选择用户标记为喜欢的水果。如果用户没有标注,选择用户买过最多的水果。但是,如果最多的水果恰好是用户标记为不喜欢的水果,那就找倒数第二个水果买。
慢慢的,A公司的系统又变得智能化了,带来了用户的增长。
但是好景不长。有用户发现自己把苹果标成了喜欢,但是下单后发现拿到的是香蕉。
这个bug上报给A公司调查后,发现用户不仅对苹果标注了喜欢,对香蕉也标注了喜欢,而且购买香蕉的数量大于苹果,系统判断用户偏好香蕉。
但是,用户居然忘记了自己已经标记了香蕉,所以在标记了苹果之后,就出现了意想不到的情况。
A公司很快做出了调整,修改了原有的标注逻辑,当用户点击一个新水果的like时,自动取消了原有水果的like标签。
不过这样好像不太好,所以又优化了一下,就是当用户点击一个新的水果来喜欢它的时候,原来有喜欢标签的水果改成了【以前喜欢的水果】标签。然后,如果用户取消了新水果的喜欢标签,上一个喜欢的水果将再次变为喜欢。
但是有很多用户的反馈。我只喜欢两种水果。希望每次买各种自己喜欢的水果,都能自动购买,而不是只拿一个。
A公司也没办法,但是为了兼容原有逻辑,只能给用户增加一个配置项,让用户决定当一个新水果被贴上like标签时,是去掉原有水果的like标签,还是保留或者改成最后喜欢的标签。
于是,A公司增加了一系列可供用户配置的选项,包括让用户决定第一策略、第二策略、底层策略等等。
比如第一选择就是标有like的水果。如果你没有再选择最大数量的水果,如果你一个都没有,那就在剩下的水果中随机选择一个。
A公司对自己的方案很满意,觉得为用户照顾到了方方面面,还有底层方案。
但也有用户对随机选择提出质疑。他们觉得不如给我一个错误,让我手动选择。他们不想把决策权完全交给一个未知的系统。
但是也有用户说,随便选一个方案就好了,省了很多麻烦,还增加了一些趣味性,不是吗?
为了照顾不同的用户,A公司再次增加了个性化配置,就是让用户在所有条件都不满足的情况下,决定是随机选择一个水果,还是投票选择,或者报错,把决定权留给用户。
就这样,A公司的系统越来越复杂,越来越智能,不断优化迭代。
但是新用户看到A公司的系统后,要配置很多信息,每次买水果都要考虑要不要贴标签,也不知道系统选择策略是什么,学习成本很高。
作为A公司系统的开发者,排查问题也越来越难,也不知道用户在选择智能购买时会推荐哪种水果,因为逻辑太复杂了。
最后,越来越多的人选择B公司购买水果。
虽然需要手动输入水果的名称,但是在A公司有购买水果经验的用户表示这不是问题。
A公司还是想不通,为什么投入这么多人力优化系统,几乎照顾到了用户的各种刁钻需求,最后却输给了B公司,B公司什么都没做。
PS:这大概就是过度设计的缺陷吧。
原始链接: