ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

确定性体验:让用户不猜不慌的产品设计原则

确定性体验:让用户不猜不慌的产品设计原则 “确定性体验”这个词最近一年在我身边出现的频率越来越高但它并不是一个严格的学术术语更像是一个在产品、技术和用户心理交叉地带被反复验证过的规律。我第一次意识到它的分量是在一次不太成功的改版里我们把页面跳转逻辑改成了“更智能”的动态路由结果用户留存率掉了整整四个百分点谁都没想明白哪里出了问题。后来复盘时才发现问题出在“不可预期”上——用户不知道下一步会跳到哪不知道加载要等多久不知道操作成功没有。那一刻我才明白所谓确定性体验不是把产品做得呆板而是让用户在任何一次操作之前都能准确预判系统将要发生什么。这篇内容适合产品经理、前端开发者、技术负责人以及所有对“为什么用户总觉得某个产品靠谱/不靠谱”感兴趣的人。1. 一个差点翻车的改版让我真正理解了“确定性”三个字先说那次改版。我们当时做了一个内容社区的“双列瀑布流变单列沉浸式”的大调整技术方案不算难就是把信息流从双列改成单列然后加了一个“猜你喜欢”的智能排序。问题出在智能排序上算法会根据用户的实时行为不断调整内容排列理论上这是个性化体验的加分项但实际效果是——用户刚刷到一条感兴趣的帖子点赞之后回退列表顺序变了他找不到刚才那条内容了。用户在各个页面上来回跳转那种“系统和我不在同一频道”的挫败感非常强。这次教训让我开始用一种新的视角看产品用户对产品产生信任不取决于某个功能有多惊艳而取决于功能表现是否稳定可预期。我现在定义“确定性体验”时会把它拆成四个维度来理解结果的确定性用户做了某个操作比如提交订单他知道一定会得到什么结果。就算失败失败也是明确的、可理解的。过程的确定性同样的入口、同样的操作每次的流程、页面、反馈方式是一致的不会“随缘变脸”。时间的确定性用户能大致预期等待时长而不是这次秒开、下次卡死或者“加载中”转个不停。反馈的确定性系统对每一次操作都有明确反馈成功、失败、处理中都让用户看得懂。这四个维度在好的产品里是互相咬合的。你可以想象一下银行转账你输入金额、确认密码、跳转到成功页。哪怕这个过程有安全校验有二次确认但是它的每一步都是预先可知的所以你不太会焦虑。反过来如果一个转账按钮点了之后不出现任何反馈你大概率会紧张地狂点最后要么重复转账要么干脆不敢再碰这个功能。那次改版后我把“确定性”列入了所有需求评审的必答问题用户知道这个操作会发生什么吗如果不知道这就是设计缺陷。这条规则听起来朴素但真在团队里执行起来你会发现它能砍掉大量“看起来有用但实际制造混乱”的需求。1.1 “确定性”不等于功能单一而是规则明确很多产品经理听到“确定性”第一反应是“那不就是做死板一点、什么都不能变吗”这其实是个误解。确定性描述的是规则本身要明确一致不是限制产品形态。举两个例子。今天很多App首页都有“个性化推荐”推荐内容对每个人都不一样这是典型的非确定性输出。但做得好的App会给你一个明确的“推荐理由”——“因为你收藏了后端技术”“因为你常逛摄影话题”这样用户虽然知道内容在变但能理解变化背后的规则这就有了确定性。游戏里的抽卡机制也是一样抽到什么本身是随机的但概率公示、保底规则是固定的玩家知道“最多抽多少抽必出”这份确定性才是付费意愿的前提。所以我后来在内部培训时经常说一句话随机可以是产品的一部分但随机出现的规则必须是一个确定的承诺。一旦用户感知到“规则变来变去、这次和上次完全不一样”不确定性的伤害就会立刻显现。2. 用户不会因为你快而信你但会因为你“一直快”而信你确定性体验里最微妙的部分是性能。多数人以为性能优化的目标是“更快”而我在实践中体会到性能优化的真正目标应该是“可预期的快”。这两者有本质区别。你想象一个场景某个页面平均加载时间是300毫秒听起来很快对不对但这个平均值背后可能是“一半情况下50毫秒另一半情况下600毫秒”。如果用户第一次打开是50毫秒第二次打开变成600毫秒他的体感不是“这次慢了”而是“这个产品是不是坏了”。再说严重点如果系统偶尔还会飘到3秒用户脑中已经给这个产品贴上了“卡顿、不稳定”的标签之后就算连续十次都是秒开也扭转不了第一印象。可预期的延迟胜过偶发的极速。这句话是我在做性能治理时最深的体会。2.1 用分位数据代替平均数据是走向可预期性的第一步如果你还是习惯看平均加载时间AVG那第一步就该调整指标口径。同样是看加载性能AVG会掩盖长尾问题真正该盯的是分位值比如P9595%的请求耗时都在这个值以下、P9999%的请求耗时都在这个值以下。我通常建议团队至少盯三个值P50中位性能代表大多数用户的真实体感。P95边缘用户遇到的性能网络差、设备老的用户基本在这里。P99极端情况的性能也是投诉和差评的主要来源。我曾经接手过一个资讯类项目优化前的P50只有180毫秒看起来挺好但P95高达1.8秒P99直接到了4秒。很多用户是三四线城市的老机型网络条件一般他们就卡在P95这条线上。我们把图片服务改成WebP渐进加载、列表做虚拟滚动、接口增加本地缓存兜底最后P50变化不大但P95降到了420毫秒P99降到了900毫秒。次月差评率降了三分之一。这个结果说明很多用户的“不好用”不是因为你慢而是因为你有时候慢有时候快他摸不准该不该信任你。2.2 给等待一个锚点进度反馈本身就是性能的一部分如果性能暂时没法做到极致那至少要让用户知道“它还在处理中”。我曾经调研过大量外卖App的操作反馈发现一个规律用户最生气的时候不是等待时间最长的时刻而是没有任何反馈的等待。同样30秒的等待一个是不停转圈圈一个是有进度条、有文案、有阶段状态用户对后者的容忍度能高出数倍。这就引出一个实操层面的建议任何超过800毫秒的操作都应该有明确的加载状态任何超过3秒的操作都应该有分阶段的进度提示。800毫秒是经验值源自人类对“即时响应”的感知阈值3秒则是一个会让注意力漂移的时间节点。这不是产品经理拍脑袋定的而是把用户心理阈值和系统处理时间做对应的结果。技术侧的落地方式也简单前端做全局状态管理区分“提交中”“处理中”“已完成”“失败”四种状态每一个状态都要有对应的界面表达。我在代码评审里最常打回的需求就是那种“点了按钮之后什么都不发生”的交互设计——这不是开发偷懒是根本就没把确定性的要求写进需求文档。3. 功能逻辑的确定性把不可见的行为变成可见的承诺从功能角度看确定性体验的核心是“防呆设计”与“显性规则”。用户对产品功能的预期往往来自他过去的经验和当下的线索如果这两者对不上就会产生“不确定感”。举一个最常见的例子表单提交。很多产品在用户填写完表单点击“提交”时后端校验报错但前端只是把滚动条拉到顶部加了一个小小的红框提示按钮没有任何变化。用户如果没注意到小红字就会再次点击提交然后按钮变成灰色、提示“提交不成功”但用户依旧不清楚到底错在哪里。这就是典型的反馈不确定。一套好的表单校验逻辑应该做到用户点击提交的瞬间按钮状态立刻从“可点击”变成“校验中”防止重复提交。错误信息直接锚定到具体字段旁并且给出修正示例而不是只泛泛地说“格式错误”。如果所有校验都通过了进入“提交成功”或“异步处理中”的明确状态并告知用户后续会发生什么比如“我们会在一个工作日内短信通知您”。这些步骤不需要复杂技术但必须在产品设计阶段就固化下来。做不做区别非常大——做了用户会觉得这个产品“懂规矩、靠谱”不做用户会四处乱点逐渐流失。3.1 状态机思维把“混乱”从产品里赶出去我在带研发团队时特别喜欢要求前端工程师用“有限状态机”的思维来设计页面交互。什么叫有限状态机就是你明确界定一个组件有多少种状态、状态之间允许怎么跳转、什么触发条件才会跳转。典型的页面状态就四类加载中loading空数据empty异常error正常展示success但很多页面实际是混乱的加载中和空数据同时存在异常了还能滚动数据返回一半界面卡死。这些问题的根源都是状态的边界没定义清楚。如果你在产品设计阶段就画好状态转移图用文字描述状态定义、触发条件和预期动作即可不需要复杂图表开发按图实现测试按图写用例产品的确定性体验就有了工程层面的保障。我把这种设计方式叫“把不确定性消灭在需求阶段”——不是等用户踩坑后反馈而是在写代码之前就把所有可能的状态和反馈方式都定义清楚。用户感知到的“确定”本质上就是这条链路被团队自己先走通、走顺了。4. 服务端的确定性接口、超时、降级一个都不能含糊确定性体验不止是前端交互的事。再漂亮的前端遇到一个动不动就超时、报错、返回非预期数据结构的后端也白搭。我见过太多项目重金砸了UI却因为接口不稳定把用户体验拉下水。服务端的确定性我总结为四项基本纪律明确超时策略、统一错误码、契约化数据结构、预留降级方案。4.1 超时策略不能靠前端瞎等很多团队对待接口超时的做法是“前端设置一个较长的超时时间比如10秒”理由是“尽量等待后端返回”。这个做法在低并发内部系统里勉强能用但在面向真实用户的产品里就是灾难。10秒的等待等于把用户的焦虑拉到满格。正确的做法是分层设定业务接口在前端层设置2~3秒超时超时后不立刻报错而是先展示“网络开小差了正在重试”之类的兜底状态同时启动自动重试或者降级逻辑。如果降级方案可以满足用户核心诉求就走降级如果不行再明确告知失败原因。4.2 错误码不统一调试无从谈起统一错误码这件事听起来像技术债但它对确定性体验的影响远比想象中大。我们曾有一个订单项目后端不同服务返回的错误码五花八门前端只能靠“code 200 才是成功”这种硬编码方式判断。后来某一服务重构错误码从“20001”变成“2002”前端没适配用户支付成功后看到了“系统繁忙”的提示后台却没有报错记录。那次事故之后我们把所有服务的错误码收敛成了一套统一规范第一组数字代表业务域第二组数字代表具体失败原因前端只对接这层标准化错误码任何服务异常都会被转译为用户可理解的语言。这不光是技术规范更直接决定了用户在异常时感受到的是“有人管”还是“没人管”。这里也给出一份我在项目中常用的服务端确定性检查清单每个接口是否定义了明确的成功/失败响应结构是否有全局兜底异常处理未捕获异常会不会被转成友好提示超时、限流、服务不可靠时用户侧是否能感知到可理解的反馈核心链路是否有降级/重试机制降级后用户体验是否仍然一致5. 确定性的心理账本信任是怎么被一次一次消耗掉的从心理层面看“确定性体验”之所以有力量是因为它在帮用户省一种很贵的资源认知负担。每一次不确定性都会让用户的大脑多一层“这是什么情况”“我要怎么办”的判断。判断多了人就累了累了就想换一个更省心的地方。丹尼尔·卡尼曼在《思考快与慢》里讲的系统一快速直觉和系统二理性思考在用户决策里不断被用到。确定性的产品体验让用户大部分时候能走系统一——看到就是这个点了就会那样不需要动脑子。而不确定的产品体验会强迫用户不断调用系统二结果就是“很累不好用”。我经常跟团队打个比方好的产品像一位言出必行的朋友他说“我二十分钟后到”二十分钟后就在楼下坏的产品像一位随缘的朋友你问他“还要多久”他回答“快了快了”然后你永远不知道他到底在哪。这个类比放在产品里非常贴切。我们做积分商城的项目时有一个特别小的改动提升了满意度用户兑换商品后如果不成功以前就是弹窗“兑换失败”现在我们会加一句“失败原因商品库存已被兑换完建议收藏后等待补货”。用户可能还是没兑换成功但因为他知道“为什么失败以及接下来该干什么”心理感受完全不同。这就是确定性在消费“焦虑”时的力量。5.1 确定性可以治愈“反馈饥渴症”我注意到一个现象很多用户会对一个App不断下拉刷新、反复退出重进这个行为的本质就是一种“反馈饥渴”。他需要一遍一遍确认系统状态因为系统给不了他一键就明白的结果。我在电商项目中测过一次下单成功页有明确的订单号、预计送达时间、售后入口相比只有“下单成功”四个字的版本反复查订单的用户比例低了近30%。因为用户已经确定知道“接下来会发生什么”他不需要靠重复操作来自我确认。6. 把确定性体验落进团队的实操清单以上谈了很多理念但理念不落地就是空谈。最后分享一下我最近一年在实际团队里推行的做法你可以直接拿去用。6.1 需求评审增加“确定性自检”每次新需求进入评审会我都会强制问几个问题用户在操作前能不能预期到这个结果如果不能需求里是否包含让用户建立预期的引导成功、失败、处理中三种反馈是否都定义了还是只画了成功态这个功能在弱网、低端机、异常数据情况下表现是否一致异常情况下是否给用户指明了下一次行动路径这些问题不需要多复杂的技术判断但在需求阶段就能拦截掉大量“反确定性”的设计。我们团队为此做了一个简单的设计评审checklist把“反馈是否完整”“状态是否穷尽”“规则是否显性”作为三个强制勾选项。6.2 考核指标从“体验均值”转向“体验下限”团队考核上我们不再只盯“平均加载时间”“平均成功率”这类数字而是增加“95分位加载时间”“P99错误率”“无反馈操作占比”等代表体验下限的指标。把下限兜住了确定性的基础就稳了。平均值的陷阱在于它掩盖了极端中的伤害——被伤害的用户往往就是那些被平均值掩盖掉的尾部长尾。6.3 建立“确定性专项”一处一处修坑如果你要在一个老项目里推行确定性体验不要幻想一刀切改造。我建议的做法是建立一份“确定性体检清单”把产品的主流程一条条走一遍记录所有“反馈不明确、状态不明确、行为不一致”的地方然后按优先级一次修一个主流程。我们做过一个内容社区第一批只修了四个坑点赞没反馈、下拉加载重复、退出登录二次确认文案不清、评论失败无保留草稿。做完之后日差评率肉眼可见地下降了。如果你也想排查当前产品的“不确定性”可以从这个动作开始找一间会议室把核心用户路径走一遍每走一步就问——我现在知道刚才的操作成功了吗我现在知道下一步会发生什么吗只要有任意一步答不上来那这个地方就是你确定性体验的突破口。7. 确定性体验和“惊喜感”并不矛盾最后必须聊一个常见疑虑太强调确定性产品会不会变得无趣我的答案是确定性与惊喜感有各自发挥的空间它们并不侵占彼此的边界。你可以用确定性管理用户的底线预期再用惊喜感突破用户的上限期待。好的做法是“确定性的规则 惊喜的内容”。比如内容社区的信息流你需要确保的是加载速度可预期、推荐标签可解释、举报反馈一定得到处理、操作按钮永远在熟悉的位置。这些要确定性。而今天这条内容有没有趣、下一篇是哪种题材这些可以随机、可以未知、可以有惊喜。用户之所以敢拥抱惊喜恰恰因为他知道底线不会崩。抽卡游戏、盲盒文化也是一样。盲盒的乐趣在于“开箱结果”不确定但价格公开、款式范围公开、每箱保底规则公开这份确定性让玩家敢于投入。如果你把价格和概率都藏起来盲盒带来的就不是惊喜而是欺骗感。所以我的总结其实特别朴素一个靠谱的确定性体验就是在用户做任何操作之前不让他猜在操作之后不让他慌。这二者做到了用户对你的信任是自然而然发生的。我自己这几年最受益的一个转变就是做产品时不再追求“让用户觉得我们很厉害”而是追求“让用户觉得我们很稳”。稳本身就是一种高效的竞争力。
返回列表