一个按钮改了 5 次,我开始怀疑:产品真的需要这么完美吗?

35 阅读6分钟



我是小米,今年 31 岁,写代码第 10 年。

如果你问我这几年写代码最大的感受是什么,我可能不会说“技术更新太快”,也不会说“需求永远写不完”,而是一句听起来有点扎心的话:

很多软件不是被技术难度干死的,是被“过度设计”折腾死的。

而这个“过度设计”,往往不是来自技术,而是来自太想把产品做得“完美”的产品经理

一个按钮,毁掉了整个需求

先给你讲个我亲身经历的故事。那是几年前,我在一个 B 端项目里负责一个很普通的功能: “提交订单”按钮

听起来是不是毫无难度?结果需求评审那天,产品经理一上来就说:“我们这个按钮,不只是一个按钮。”

我当时心里一紧。接下来 30 分钟,他给我们讲了这个按钮的“完整人生”:

  • 未填写必填项 → 灰色禁用态
  • 填写中 → 浅蓝色
  • 校验中 → loading 转圈
  • 校验失败 → 抖动 + 红色提示
  • 校验成功 → 渐变动画
  • 点击后 → 二次确认弹窗
  • 网络慢 → 弱网兜底提示
  • 成功 → Toast + 跳转 + 动效
  • 失败 → 错误码映射文案

我看着原型,心里只剩一个问题:用户真的在乎这些吗?

后来这个按钮,我们前后改了 5 轮。上线后呢?用户只提了一个反馈:

“点了没反应,还以为没点到。”

那一刻我突然意识到一个问题:我们在设计世界里追求完美,但用户活在现实世界里。

产品经理常见的一个误区:把“自己”当成用户

很多产品经理都很认真、很负责,也很辛苦。但问题往往出在一个非常隐蔽的地方:

你以为你在替用户思考,其实你是在替“理想中的自己”思考。

你有没有见过这种场景:

  • 产品经理说:“如果是我用,我会希望它更严谨一点”
  • 产品经理说:“我们要防止用户犯错”
  • 产品经理说:“流程复杂一点没关系,专业感更强”

但现实中的用户是怎样的?

  • 早高峰挤地铁,单手操作
  • 午休 5 分钟,只想快点完成
  • 不想看说明,不想理解概念
  • 更不想被教育“正确使用方式”

用户不是来参加产品设计答辩的。用户只是想把事办完,然后走人。

过度设计,常常长什么样?

我总结了一下,这些年见过的“过度设计”,基本都有几个共性。

1、为了“完美流程”,牺牲真实效率

比如:

  • 一个操作,非要拆成 5 步
  • 每一步都有校验、说明、提示
  • 用户不能跳过,也不能快速完成

流程确实严谨了。但你忘了一件事:80% 的用户,只想完成 80% 的场景。

2、为了“防呆”,把聪明用户当傻子

有些设计,出发点是好的:“我们要避免用户误操作。”

但最后的结果却是:

  • 每一步都确认
  • 每个按钮都提示
  • 每次操作都要你再想一遍

你以为是在“保护用户”。实际上是在告诉用户: “我不信任你。”

3、为了“自洽”,忽略真实使用环境

产品逻辑非常自洽:

  • 状态严谨
  • 枚举齐全
  • 规则完整

但一上线你才发现:

  • 用户根本不会按你设想的路径走
  • 他们会乱点、跳步骤、反复返回
  • 甚至在你最不希望的地方停下来

我们可以用一个比喻来说清楚这件事

我一直很喜欢用一个比喻来形容过度设计的产品它就像一台“过度智能的电饭煲”。

你本来只想煮个饭。结果它告诉你:

  • 请选择米种
  • 请选择水质
  • 请选择海拔
  • 请选择口感
  • 是否开启营养保留模式
  • 是否进行二次蒸煮

你还没吃上饭,人已经饿烦了。而真正卖得最好的电饭煲是什么样的?一个按钮:煮饭。

从技术视角看:过度设计,对开发是灾难

作为程序员,我必须说一句大实话。过度设计,对开发来说,真的很伤。

我用一张表,简单对比一下「适度设计」和「过度设计」。

你会发现一个很残酷的现实:过度设计的产品,对用户不友好,对开发也不友好。

真正好的产品设计,反而“不显眼”

很多刚入行的产品经理,会有一个阶段:“我一定要把每个细节都设计到。”

但做久了你会发现:真正好的产品设计,用户是感受不到“设计”的。

他们只会觉得:

  • “挺顺的”
  • “好像也没什么”
  • “反正一下就用完了”

但这,恰恰是最高级的评价。

我想给产品经理的三点真心建议

如果你看到这里,我想你不是那种不思考的产品经理。所以我想给你三点,来自一个写了多年代码、被需求折磨过无数次的技术人的真心建议。

1、少问“是不是更完美”,多问“是不是更有用”

  • 完美,是设计师的执念。
  • 有用,是用户的底线。

2、多去看用户真实使用,而不是只看原型

  • 一次真实使用录像,胜过十次需求评审。

3、给用户“犯错的空间”,而不是“不许犯错的牢笼”

  • 用户不是来被教育的。
  • 软件是工具,不是考试。

最后,说一句可能不太好听的话

我不反对产品经理追求好产品。但我真的不建议:

为了“设计上的完美”,偏离用户真实使用软件的角度。

因为最终为这些设计买单的:

  • 是用户的耐心
  • 是开发的时间
  • 是整个团队的节奏

好的产品,不是设计出来的,是被用户“用出来的”。

END

如果你也是:

  • 经常被复杂需求折磨的程序员
  • 或者开始反思“是不是想太多了”的产品经理

那希望这篇文章,能让你点个头,心里默默说一句:“嗯,好像确实是这么回事。”

好朋友们,我们下篇再见。

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!