← 返回全部文章

把复杂系统设计得简单

简单不是删掉功能,而是让正确的路径自然浮现。

“简单”经常被误解为更少的按钮、更短的页面,或者更干净的视觉。它们可能是结果,却不是本质。

真正的简单,是用户不需要理解系统内部的复杂性,就能自然地完成目标。

先分清复杂与混乱

复杂不一定是坏事。支付系统、协作软件和开发工具天然包含大量规则。问题出现在这些规则没有被组织,直接暴露给了使用者。

可以用一个简单问题检查设计:用户此刻必须知道什么,什么可以稍后再说?

好的界面会按决策顺序提供信息,而不是按数据库字段顺序罗列信息。

让主路径足够明显

每个页面都应该有一个最重要的动作。它不一定是最大或最亮的按钮,但必须在视觉层级和文案上保持一致。

我通常从三个层面检查:

  • 位置:动作是否出现在用户形成意图之后;
  • 语言:文案是否明确描述了结果;
  • 反馈:操作之后,系统是否及时说明发生了什么。

当这三者对齐时,用户很少需要“学习”界面。

渐进式呈现复杂度

不要删除专业能力,而要把它放在正确的位置。默认状态服务于大多数场景,高级选项则在用户需要时出现。

const settings = {
  mode: 'simple',
  advanced: user.requestsMoreControl,
};

这并不意味着把所有内容塞进“更多设置”。渐进式呈现的关键,是根据上下文判断下一步最可能需要什么。

用约束换取清晰

无限选择通常不会带来自由,只会增加决策成本。优秀的产品会主动设定合理默认值,并在必要时允许修改。

默认值表达了设计者的判断,也减少了用户每次都从零开始的负担。承担判断,是产品团队不能推给用户的责任。

最后的检查

完成设计后,不妨暂时忘记自己知道的一切,从第一次使用者的角度问:

  1. 我现在在哪里?
  2. 我能做什么?
  3. 做完以后会发生什么?

如果这三个问题都能迅速得到答案,复杂的系统就已经开始变得简单。