Hamming 有一段很像工程师自我检讨的回忆。他发现,如果职业生涯只是一个问题接一个问题地解决,即使每次都成功,未来仍然只是更多同样昂贵的问题。于是他给自己立下规则:
“never again solve an isolated problem”
他的完整意思并非拒绝具体任务,而是把具体任务当作一类问题的样本。这个变化重新定义了生产力:答案是否按时交付当然重要,但更大的收益来自这一次工作有没有降低下一次的成本。
修复一个线上故障,可以停在改掉一行代码;也可以继续追问,同类故障为什么难以及时发现,于是补上测试、监控或更清楚的边界。完成一份重复报表,可以继续手工复制数据;也可以抽出稳定的数据模型和生成流程。写完一篇文章,也可以留下对结构、证据和表达失误的复盘,让下一篇不必从空白开始。
这里的关键并不是凡事都要“平台化”。抽象也有成本,过早把一个偶发现象包装成通用框架,常常比重复两三次更浪费。更实际的判断是:这个问题还会再来吗?它和过去的问题共享哪一段机制?我现在多做的一点工作,能否被未来明确复用?
一次性解决问题,产出是一份结果;解决一类问题,产出还包括新的能力。前者让待办列表少一项,后者让未来的待办列表变轻。
整理自这次对话;人物引语与史料已另行核对。