去年三月,我给自己记了一周的账:把每一次「手动做的重复动作」都写下来,包括花了多久。
一周下来,那张表有四十多行。加起来大概十一个小时——占我一周工作时间的四分之一还多。
这篇是那之后一年的复盘。
先记账,再动手
记账这一步不能跳。我原本以为自己知道时间花在哪儿,记完才发现完全不是。
我以为最耗时的是「调试」,实际上排第一的是在几个工具之间搬运数据:从这里导出、改个格式、粘到那里去。单次只要两三分钟,不痛不痒,但一周发生了二十多次。
重复劳动的隐蔽之处在于,单次成本永远低于「动手自动化它」的成本。所以每一次你都会选择手动做一遍。只有把一周的总量摆出来,账才算得清。
三条筛选标准
四十多行,我没有全做。筛选标准是这三条,要同时满足:
一、频率够高。一周三次以下的,先放着。这类事情自动化之后,你会忘记它怎么用,下次还得重新看文档,反而更慢。
二、输入输出稳定。每次的形式差不多。如果每次都不一样,那自动化出来的东西会有一堆特判,维护成本超过收益。
三、做错了能发现。这条最容易被忽略。有些活自动化之后,做错了你根本不知道——比如某个数据清洗步骤,悄悄漏掉一部分记录,结果看起来完全正常。这类活要么先做好校验,要么就别自动化。
按这三条筛完,四十多行剩下十四行。这十四行,覆盖了原来那十一个小时里的大约七个小时。
八成的收益来自不到四成的项目。这个比例我后来在别的地方也反复见到。
做了什么
具体的十四件事没必要一一列举,但有几个模式值得说:
模式一:把「搬运」变成「管道」。排第一的那个问题,解法不是让搬运变快,而是让两端直接连上,中间那一步消失。最好的自动化是让工序消失,而不是让工序变快。
模式二:把「记住」变成「查得到」。很多重复劳动其实是「重复地回忆」——这个参数上次是多少来着?那个坑是怎么绕过去的?我现在的做法是每次踩坑就写一条,带上关键词。下次不用回忆,搜一下就有。
这一条的收益被我严重低估了。我以为我记得的事情,三个月后基本都不记得。
模式三:把「盯着」变成「告诉我」。以前我要定期去看某些任务的状态。现在是它有问题主动告诉我,没消息就是好消息。这个转变让我的注意力从「轮询」变成了「中断」,心理负担小很多。
坚持没有自动化的部分
这部分可能比上面更重要。
一、最终质量的判断。我试过让机器打分,也确实在用,但那是「筛掉明显不合格的」,不是「决定这个够不够好」。后者我至今自己看。原因很简单:机器判断不了「好」,它只能判断「有没有明显的错」。这两件事差得很远。
二、要不要做某件事的决策。这个不用解释。
三、几个代价极高的不可逆操作。技术上完全可以自动化,但我判断一旦出错,代价大到不值得赌。它们至今保留人工确认——我点一下才往下走。每次点的时候都在想「这个真的该自动化」,但我一直没动。我认为这个克制是对的。
一年后的账
- 每周花在重复劳动上:11 小时 → 约 2 小时
- 需要手动介入的次数:约 7 次/天 → 约 2 次/周
- 为此付出的开发时间:断断续续大约 六周
六周换一年省下来的四百多小时。但我想说的不是这个数字。
真正的变化是注意力的连续性。以前一天被打断七八次,每次二十分钟,加起来不到三小时——但那一天基本上什么深度工作都做不了。现在一周被打断两次,我有了整块的时间。
被打断的成本,从来不只是被打断的那段时间。
一个提醒
最后说个反面的。
这一年我也做过几件事后看是浪费的自动化:花了三天做一个工具,用了两次,需求就变了。
事后复盘,问题出在我没问一句:这件事接下来还会存在多久?
有些重复劳动是稳定的,会一直存在;有些是某个阶段特有的,过去了就没了。给后者做自动化,投入永远收不回来。
现在我加了第四条筛选标准:这件事在可预见的未来还会继续发生。看起来是废话,但它挡住了我至少三次冲动。


SERVICES.waline即生效。想说话可以先去 留言板,那边我每条都回。