聊个支付人都会碰到的问题:资损防控。做支付如果还没有碰到过资损,那就是做得时间还不够久。资损防控是一个很大的话题,需要开几篇文章才能讲完,今天只从一件小事入手聊一个简单而又行之有效的防错策略:防呆设计的实践。
曾经处理过一个资损事件,很典型,值得说道说道。
一个研发同学在线下测试环境做测试,为图方便,直接从生产捞取一段日志的参数做为请求参数,不幸的是,线下测试环境竟然配置了外部第三方的生产环境参数,导致真实资金被错误地转入个人账户,造成了平台的资金损失。尽管损失金额不大,但由于操作不规范,事件的性质非常严重。
这类事件出来后,通常会发起所谓的复盘,然后给出一堆的整改措施,流程规范、管理制度、设计优化等。我们今天抛开那些大而全(或者华而不实)的整改措施,单单聊聊如何通过“防呆设计”来预防此类事件的发生。
“防呆设计”(日语:ポカヨケ poka yoke)是一种预防性设计策略,目的是通过限制方法减少错误的发生。用户在无需额外注意力、经验或专业知识的情况下,也能准确无误地完成操作。
这个概念起源于日本,被广泛应用于丰田汽车的生产过程中,随着时间的推移,已成为全球范围内广泛采用的设计策略。
在工业设计中,防呆设计的例子比比皆是。例如,USB接口的设计确保了只有正确方向才能插入,而Type-C接口则进一步简化,支持双面插入。
第一版:使用字母标识,容易出错。
第二版:使用颜色标识,减少出错。
第三版(防呆):不同形状只能插到不同的位置,想错都错不了。
再说回到开头所说的故障,我们应该使用“防呆”设计的思想,彻底阻断使用者犯错的可能性。具体怎么做呢?如下:
通过实施上述防呆措施,即使是经验不足的新员工也能避免类似的资损风险。防呆设计并非只是解决问题的手段,而是一种预防性策略,旨在通过系统设计减少人为错误的可能性。
在支付行业中,防呆设计随处可见,举几个例子:
从业多年,见过太多的线上故障,得到一个朴素的道理:“人都是不可靠的,如果能通过系统解决的,就一定不要依赖人或流程来解决。”多引入一些防呆设计,让再“呆笨”的人都没有出错的可能性,那么系统就是健壮的,也就没有那么多的线上应急和复盘。
这是《百图解码支付系统设计与实现》专栏系列文章中的第(28)篇。关注墨哥,深入了解支付系统的方方面面。