Stay weird. Stay different.

0%

过度设计

过度设计

电钻

设计不足与设计过度

  • 什么是设计不足?设计出来的系统复用性差,扩展性不强,不能灵活的应对变化,简言之,设计没到位。设计不足,多半是因为经验有限,设计能力有限。

  • 什么是过度设计?设计出来的系统比恰到好处要复杂臃肿的多,简言之,客户需求是要一把杀鸡的刀,你给设计了一把牛刀(杀鸡用牛刀)。过度设计,多半是因为有设计的癖好,喜欢炫耀或玩弄无谓的技巧,或是喜欢把简单的问题搞复杂化。


客户只是告诉你他“需要一把杀鸡的刀”,至于将来有没有需求变化,有没有可能要这把刀能杀牛,客户也不知道。所以当然这个设计的度就很难把握了。

  • 有人主张设计必须前瞻与用户需求,不能以需求为导向。因为客户从来不会告诉你他未来的需求,连他也不知道。

  • 有人认为认为设计必须以需求为导向,软件以人为本,以用为本。


  • 设计不足,意味着系统复用性扩展性和灵活性差,系统僵化,不能应对将来的需求变化,或者将来修改和维护的代价和成本会很高,这当然是设计错误;

  • 过度设计,则意味着为了实现这个设计要付出的额外代价,例如成本上升,缺陷可能性加大,提升维护成本,甚至降低系统性能。而可维护性和系统的高性能都是系统的隐性需求,这些需求没实现好,当然也是设计错误。

最简单的才是最好的。大巧若拙,大道至简,有时候越简单的反而越难实现,而且越接近真理。

摩拜与ofo

ofo发布会上,ofo创始人兼CEO戴威褒扬自己的同时,不忘吐槽一下友商,他提到,“现在市面上很多友商的设计(尤其是指摩拜单车),在我看来有过度设计的地方,这样直接导致成本高,车身各方面比较重,用户的感受是很难骑。

ofo
摩拜1
摩拜2

需求中的过度设计

需求过度设计

设计中的过度设计

设计过度设计1

设计过度设计2

设计过度设计3

开发中的过度设计

开发中的过度设计

10 个现代的软件过度设计错误

开发需要敏捷开发&TDD

什么才是问题的本质

在英国统治印度的时期,当时的印度 Delhi 地区毒蛇众多,英国政府为此非常担心,所以发布了悬赏,居民可以杀死毒蛇获得奖励。在开始的时候,这是一个很有效的策略。大量的毒蛇被居民猎杀。但随着时间的推移,很多人开始豢养毒蛇,杀死以换取奖励。当政府了解到这种情况时,猎杀毒蛇的奖赏被取消了。原来豢养的毒蛇被大量放生,当地毒蛇的数量比发布悬赏前反而更多了。

我们常看到一个直接的问题解决方法,却很难达到我们想要的结果。

我们的大脑往往倾向于建立简单的因果关系

美国社会关于「恐怖分子」的主流观念如下:

恐怖袭击→对美国人的威胁→军事反应的需要

而恐怖分子对自己的处境的看法大体如下:

美国的军事行动→感受美国的侵略性→招募更多恐怖分子

恐怖分子

进行系统思考的关键,是学会思考「关系」,而非只是关注「人和事物」

现代物理学的一个重要观点是,部分的性质通常来说不是最重要的。最重要的是它们的组织,它们组合起来的模式和形式,也就是各个部分之间的关系。

就像是石墨与钻石,都是相同的碳元素构成,只是碳元素的组织方式不同,展现出来的性质就截然不同。

百度

天猫

天猫也承担了中介的职能,但天猫的系统远比百度完善。这其中的关键就是:系统的反馈。

在百度的推荐系统中,用户对医院服务没有公开的评价体系。系统本身没有即时、有效的反馈和甄别虚假信息的能力。所以,KPI 设定必然朝着「更高成交量」–>「更高广告费」的循环不断加速。

最终,百度推荐系统的反馈是在「知乎」上完成的,但这时悲剧已经酿成。

而在天猫的系统中,用户评价起到了很好的反馈作用。

除了过往质量评价会影响用户购买信心,从而影响商家的成交量以外,用户的评分还是商家产品搜索排名的关键指标,形成不同的系统关系促使商家更好地服务用户。

美国美铝集团例子

美国美铝集团,曾经面临着成本上升、收入和利润严重下降等一系列问题。

如何改善美铝的经营局面?

股东和员工都期待着新CEO保罗·奥尼尔在产品竞争力、降低成本、开发新品等方面做出努力。

但保罗提出问题解决的突破口是:增加公司在安全生产上的投入。

在成本上升,利润下滑时,增加安全投入?很多人觉得难以理解。但结果是,保罗就职不到一年的时间,美铝就扭转了利润下滑的局面。

而创造「奇迹」的关键是保罗真正理解了美铝公司的运作系统。

什么原因导致项目上线延期?
项目上线延迟因果图

什么原因导致项目上线产生大量BUG?
项目上线BUG因果图

本质是为了解决问题为用户创造价值

电钻的功能是打洞

共享单车只是辆好骑的自行车

设计师不要为了炫酷的视觉效果而设计

开发不是为了面向对象而面向对象

真的是用户笨吗,我们真的需求提示用户怎么使用?