03 失效模式——事情在哪一步最容易搞砸
开篇除恐
"失效模式"这四个字,像一门你已经交了学费的选修课。拆开来看,它的意思其实是一只落在地上的苹果。
失效:没按计划工作。 模式:具体的出错方式。
苹果从树上掉下来,是一种"失效"。但苹果是被人推下来的,是树根断了掉下来的,还是自己熟了掉下来的——这三种"出事的方式"完全不同,处理也完全不同。这三个"怎么掉"就是失败模式。
FMEA 里的"失效模式"说得更精确:它问的不是"这件事会不会出问题",而是"这件事有几种不同的出问题的方式"。
白话化:到底什么叫"失效模式"
你不需要去翻标准定义。只说两件事:
第一位:失效模式以"组件"为单位,不跨越组件。刹车手柄失效是一个模式,钢线失效是另一个模式。不能写"整个刹车系统失效"——那是"效果",不是模式。这是 FMEA 表格第一列最常见的初学者错误。下面会专门提醒你。
第二位:列失效模式时只写"它是怎么坏的",不写"谁让它坏的"或"它坏了怎么样"——那些是后面几章的内容。一列写一种情况,一种情况写一句话。
直觉先行:列一个清单
拿登录流程来想。你前面已经把流程拆成组件了。现在逐个问:每个组件会怎么出问题?
在同一组件下有几种模式,就写几条。比如"输入框"这个组件,可以出三种问题:留空、写错格式、注入恶意字符。
这时候你看,同一组件有多少条失效模式,直接反映了这个组件的"脆弱程度"——脆弱的东西失效方式多,就该多花心思。
术语脱西装
| 术语 | 大白话 |
|---|---|
| Failure Mode / 失效模式 | 一个组件出事的具体方式,不跨组件,不写后果 |
| Mode Table / 模式列表 | 把所有失效模式列在一起的清单 |
怎么列:一个自检清单
写失效模式的时候,每完成一行问自己三个问题:
- 我说的是一件组件的事,还是跨越了两个组件?(如果是,拆开)
- 我写的是"怎么坏的",还是"坏了对谁有影响"?(如果是后者,那是 Effect,不是 Mode)
- 这行够具体吗?("出问题"这种写法没有用,要写"数据由 8 位密码被截断为 6 位留存")
例子
☼ 热身:自行车前刹车的一个组件 ⎯⎯ 列出失效模式(自编)
组件:自行车刹车钢线。它对应用的是"传导刹车主 pulling force"。
答(三条就够了):
- 钢线锈蚀,断裂
- 钢线与手柄连接处的接头松动脱落
- 钢线被轮圈卡住,无法回缩
注意写法:这三个条目说的都是"钢线自己怎么坏的",没有写"骑行者摔出去"(那是效果,第四章讲)。写清楚了。
☼☼ 正经:登录按钮的完整失效模式(自编)
取登录流程的前两个组件:"界面(显示登录按钮)"和"输入框(接收账号密码)",列出各自可能怎么失效。
我想到的(怎么想的:每个组件,我逐个问"它本来该干嘛,它有什么方式干不成"——这是 FMEA 最常用的思考框架):
界面——"显示登录按钮": - 按钮颜色和背景色对比度不足,色盲用户看不见 - 按钮在移动端缩小到 44×44 以下,太小点不到 - 按钮在弱网下没加载出来,显示空白区域
输入框——"接收账号密码": - 必填项留空,前端未拦截,直接发请求 - 不限制输入长度,超长字符串截断后存入 - 密码框类型设为 text,明文显示在屏幕上
这就是一份 FMEA 表第一列的内容。纯列模式,没碰严重度,没碰后果,也没碰谁负责修它们。
这一章要带走的东西:
- "失效模式"就是"出事的方式",以组件为单位,不跨组件,不写后果。
- 列模式时只写"怎么坏的",不写"坏了对谁有影响"——这些分在不同列。
- 写模式时自检三题:跨组件了吗?写到后果了吗?具体吗?
- 一个组件如果列出的模式超过三条,说明它相对脆弱,值得重点看后面的频度。
就这样。