把复杂系统设计得简单
简单不是删掉功能,而是让正确的路径自然浮现。
“简单”经常被误解为更少的按钮、更短的页面,或者更干净的视觉。它们可能是结果,却不是本质。
真正的简单,是用户不需要理解系统内部的复杂性,就能自然地完成目标。
先分清复杂与混乱
复杂不一定是坏事。支付系统、协作软件和开发工具天然包含大量规则。问题出现在这些规则没有被组织,直接暴露给了使用者。
可以用一个简单问题检查设计:用户此刻必须知道什么,什么可以稍后再说?
好的界面会按决策顺序提供信息,而不是按数据库字段顺序罗列信息。
让主路径足够明显
每个页面都应该有一个最重要的动作。它不一定是最大或最亮的按钮,但必须在视觉层级和文案上保持一致。
我通常从三个层面检查:
- 位置:动作是否出现在用户形成意图之后;
- 语言:文案是否明确描述了结果;
- 反馈:操作之后,系统是否及时说明发生了什么。
当这三者对齐时,用户很少需要“学习”界面。
渐进式呈现复杂度
不要删除专业能力,而要把它放在正确的位置。默认状态服务于大多数场景,高级选项则在用户需要时出现。
const settings = {
mode: 'simple',
advanced: user.requestsMoreControl,
};
这并不意味着把所有内容塞进“更多设置”。渐进式呈现的关键,是根据上下文判断下一步最可能需要什么。
用约束换取清晰
无限选择通常不会带来自由,只会增加决策成本。优秀的产品会主动设定合理默认值,并在必要时允许修改。
默认值表达了设计者的判断,也减少了用户每次都从零开始的负担。承担判断,是产品团队不能推给用户的责任。
最后的检查
完成设计后,不妨暂时忘记自己知道的一切,从第一次使用者的角度问:
- 我现在在哪里?
- 我能做什么?
- 做完以后会发生什么?
如果这三个问题都能迅速得到答案,复杂的系统就已经开始变得简单。