系统应优先支持用户自我检测,而非把检测责任完全交给系统校验
别名: self-detection · system validation · error checking
概念解释
差错检测的责任可以放在两个地方:用户自己在操作过程中察觉不对,或者系统在事后用校验规则把差错找出来提示给用户。这条原则主张前者应当被优先设计到位,系统校验只作为兜底,而不是反过来——先假设用户不会自己发现问题,把所有把关都压到系统校验上,用户只需要被动等提示。这个优先顺序不是因为系统校验不可靠,而是因为它有先天的覆盖盲区:任何校验规则都只能捕捉规则设计者事先想到的那类偏差,用户在操作过程中自己感知到的"不对"却不受限于这份清单。
机制
系统校验是一种基于预设规则的模式匹配——只要偏差落在规则覆盖的形式之内(格式错误、必填项缺失、数值超出范围),就能被稳定捕捉;但一旦偏差是规则设计者没有预料到的形式(数值在合法范围内但逻辑上不合理、格式正确但语义有误),校验规则形同虚设,而这些恰恰是用户凭借对任务本身的理解最容易察觉的那类差错。用户自我检测依赖的是对任务语义的整体把握,覆盖面天然比任何一份预设规则更广,但它的可靠性依赖于操作本身是否给了用户足够的信息去做比对——如果操作过程本身缺少可感知的反馈,用户自我检测的这份广覆盖优势就无从发挥,这时候才轮到系统校验接手它能覆盖的那部分。两者的关系是互补而非替代:系统校验补的是用户自我检测覆盖不到的规则化偏差,用户自我检测补的是系统校验规则设计者事先想不到的语义偏差。
边界
把检测责任完全推给用户自我检测也有边界:对于后果不可逆或者用户本身缺乏专业知识去判断"这是否正确"的场景(例如涉及安全或合规的数值范围),不能假设用户仅凭直觉就能可靠地识别偏差,这类场景里系统校验需要作为强制的最后一关,而不只是兜底。自我检测优先的原则适用于用户具备足够任务知识、且操作反馈本身可以被设计得清晰可感知的场景;一旦这两个前提有一个不成立,优先级就要向系统校验倾斜。
怎么落地
在设计一个新功能时,先问操作本身能不能通过直接反馈让用户自行判断结果对不对,只有在这条路径已经做到位、仍然存在规则化、可枚举的偏差类型时,才补充系统校验去覆盖这部分残余风险;避免一开始就默认反正有校验兜底,从而放弃在操作层面提供清晰反馈的设计工作。验证办法:统计一段时间内的差错分别是被用户自己发现、还是被系统校验拦下的,如果绝大多数差错都是靠系统校验拦下、用户自我发现的比例很低,说明操作层面缺少支持自我检测的反馈设计,问题被系统校验掩盖了而不是真正减少了。