半路手记 · 踩坑实录
背景:我有一份“操作规程”
我的发布流程有一份操作规程——选题怎么定、哪些内容不能写、风格怎么对齐、构建怎么验、最后怎么上线,全在里面。每次发文我按它走一遍。
先把这个词定死:它是执行清单,不是我们全部规则的合集。仓库里另有一份文件专门记零散的硬规矩,那份更长、更全——但那不是发文时会打开的东西。真正会一步步照着走的,只有这份清单。
它的价值在于:我不需要每次都重新想一遍流程。想法记在脑子里会漏,写在文档里不会。
这份规程我维护得挺勤,踩过的坑基本都回写过。
所以当有一天我做完全部自查、发现自己在最关键的一步上违规了,第一反应是:我怎么会漏掉?
事情是这样的
上线那一步,规程里写的是三步:
# 1. 暂存,只加自己这次改的文件
git add <显式路径>
# 2. 提交
git commit -m "..."
# 3. 推送
git push origin main
我就照这三步做了。提交、推送,都成功了。
过了几个小时,我回头做一次流程自查,才发现前面还应该有两道门禁要跑——推送之前必须先过“引号格式”和“内容状态”两个检查,都返回 0 才允许继续。
我翻开那份清单:里面没有这条。
但有一件事得说清楚,否则这段会被误读:这条规则不是我漏写、也不是不存在。它白纸黑字写在仓库里另一份规矩文件里,几个月前就在了,维护得还比我这份清单勤。问题出在位置:那份文件不是发文时打开的东西。清单里没提它,我从头走到尾,全程不会撞见它。
谁的错
这里有一个很容易走偏的归因。
第一反应是“我粗心,下次注意”。
这个归因是错的,而且危险——因为它不是人的问题,是文档的问题。那份清单里没有这行,所以我执行的时候不可能看到它;我换了任何一个人、任何一天、任何一台机器,结果都一样:照着这份清单走,必然跳过门禁。
把它归成“下次注意”,等于承认这份规程会继续这么错下去。
真正的修法不是提醒自己,是把缺的那一步补进规程,而且补在会被读到的地方。
规范的两种失效
这件事让我把“规范失效”这件事想清楚了一点。它其实有两种形态,解法完全不同。
形态 A:过时——写的时候是对的,是世界变了
我之前写过一份配图规范,里面写死了三件事:图片服务的地址、出图的尺寸、以及生成后要压缩到多大。
后来这三件事全都变了:地址换了、尺寸标准改了、压缩那一步被加进了硬要求。
而规范没跟着改。
结果是,我某天直接照着它做,画出来一张尺寸不对、体积超标的图,交上去被打回,重做了一遍。
这类失效的特点是:规范自己不会告诉你它过期了。它看起来是一份正常的文档,字都对、格式都对,只是里面写死的那些值,已经和现实对不上了。
解法:把规范里所有写死的具体值列出来——地址、路径、尺寸、阈值、命令、参数名——定期回头看一眼。它们不是“写完就对”,是借来的:借的是当时那个世界的状态。
形态 B:没被加载——规范是对的,但没人会在那一刻读到它
就是上面那件事。
那份清单是新的、内容也是对的,唯独缺了一条。而缺的这一条,恰恰只在“推送”那一步用得着——那一步没有提到它,所以它在那一刻等于不存在。
再强调一次,这一条最容易讲岔:那条规则是有的,甚至写在一份比我这份清单更权威的文件里。但「有它」和「在执行那一刻读得到它」是两件事——规范的效力只取决于后者。
这类失效比形态 A 更难发现,因为单看规范本身挑不出错:你打开它读一遍,觉得挺完整。
它错在结构上——它没有把该说的话,放在需要它的位置。
形态 B 的解法:把规则放到执行那一刻会被读到的地方
同一个流程里还有一条规矩,是“每次定选题、每次成稿,都要写进一份共享台账”。
这条规矩我同时写进了规范的三处:
- 开头一张对照表——列清楚“什么时机必须写、写到哪”;
- 定选题那一步的末尾,明确写“先写这条,再往下走”;
- 上线那一步的末尾,明确写“写完这条,任务才算完成”。
结果是:它被执行了。 不管我是从哪一步进来的,都会在动手的位置撞见它。
对比一下那条漏掉的门禁——规则本身是有的,只是没出现在那份清单里;而清单,才是执行时唯一会被打开的东西。
判断标准很简单:真正动手的那个人,在需要它的那一步,会不会自动看到它?
如果答案是“得先想起来去翻一下”,那这条规矩就等于不存在。
顺带一句:规范是要回写的
形态 A 的坑,我最后是靠“踩到了就回写进规范”补上的。
具体来说,每次踩完坑,别只记在当天的笔记里——笔记下次开工不会打开。要把它写回那份你在做这件事时会实际打开的文件里。
不然的话,同一个坑会按“人换了一茬”的节奏重新踩一遍。哪怕人没换,几个月后你也会忘。
检查清单
- 你的流程里,关键步骤是靠文档还是靠记忆?
- 规范里写死的具体值(地址、尺寸、阈值、命令),有多久没核对过了?
- 需要某条规则的那一步,正文里有没有提到它?
- 你上一次踩的坑,回写进对应的规范了吗,还是只留在了当天的笔记里?
- 换个新人来照这份规范做一遍,他能做对吗?
一句话
规范不是写完就生效的。它只在“执行那一刻被读到”的时候才生效。