强制功能按锁入、锁出与连锁三种机制实现,对应不同的风险场景
别名: 强制功能 · forcing function · 锁入 · lock-in · 锁出 · lockout · 连锁 · interlock
概念解释
强制功能(forcing function)指一种不满足某个前提条件就无法继续下一步操作的设计约束——它不是提醒你别这么做,而是让"这么做"这件事在物理上或逻辑上根本无法完成。强制功能不是单一手段,而是一个统称,具体落地时分成三种针对不同风险场景的机制:**锁入(lock-in)**防止用户过早退出一个正在进行、中途中断会造成损害的操作;**锁出(lockout)**防止用户进入一个本身就危险的状态或区域;**连锁(interlock)**约束多个操作必须按特定顺序发生,跳过顺序就无法继续。三者的共同点是都把"是否允许继续"的判断从用户身上转移到了系统的前提条件上,区别在于它们各自拦住的是操作的哪一端。
机制
这三种机制之所以要分开,是因为它们针对的风险结构完全不同。锁入针对的风险是"中途停下比继续完成更危险"——微波炉运行时门被锁住、程序正在写入文件时禁止强制关闭,如果允许用户在这个阶段随意退出,退出这个动作本身就会造成损害,锁入因此不是不让你做完,而是不让你在做的过程中被打断。锁出针对的风险相反,是"进入这个状态本身就是危险的开始"——电梯门开着时不允许轿厢移动、机床防护罩打开时切断电源,风险不在于中途退出,而在于一旦进入这个状态,后续无论做什么都已经暴露在风险里,所以要挡在进入这一步。连锁针对的风险则是操作顺序本身携带因果关系——先踩刹车才能挂挡、先验证身份才能进行敏感操作,如果顺序被打乱,后一步操作建立在一个本不该成立的前提上,连锁通过物理或逻辑手段让后一步在前一步完成之前根本无法触发。三者都不依赖用户"记得"或"注意到",而是把正确顺序、安全状态直接写进了系统能不能执行下一步这件事本身。
怎么研究
强制功能作为一个正式的设计概念,最早被系统化提出并用来分析日常物品与工业设备中的错误预防设计,评估方法通常是回顾一类事故(误操作、误进入危险区域、跳步操作)在引入对应的锁入、锁出或连锁机制前后的发生率变化,这类证据大量来自工业安全与设备设计领域,因为强制功能最初的应用场景就是高后果的机械与工业系统。判断某个强制功能设计是否成立,关键要看它拦截的失败模式是否被准确识别——如果实际发生的错误并不是设计者以为要拦的那种,强制功能即使存在,事故率也不会下降,因为它挡住的是错误的方向。
边界
三种机制都要求"前提条件可以被系统准确判断"这个基础成立,如果判断本身依赖的传感器、状态标志出错,强制功能会连带地错误拦截合法操作或放行本该拦住的操作,机制的可靠性因此上不封顶地依赖它所依据的状态判断的可靠性。三种机制也不是互斥的:一个复杂流程完全可能同时用到锁入防止中途退出、连锁约束步骤顺序,具体用哪一种取决于风险发生在操作的哪个环节,而不是设计者的偏好。
怎么落地
设计任何涉及高后果操作的流程时,先定位风险发生在哪个环节:如果风险是"中途退出会造成损害",用锁入;如果风险是"进入某个状态本身就危险",用锁出;如果风险是"操作顺序颠倒会导致后续步骤建立在错误前提上",用连锁。不要把三种机制混为一谈地统称为"加个限制就行",因为它们拦截的失败模式不同,用错机制等于没有真正拦住风险。验证办法:为每个强制功能明确写出它对应的风险场景是什么、拦截的是哪一类失败模式,然后用真实或模拟的误操作数据检验——如果某类错误在机制上线后发生率没有下降,说明当初对风险场景的判断出了偏差,需要重新定位风险发生的环节,而不是简单加强现有机制的强度。