业主对第五大道这座新楼的要求,短得出奇:预算固定;办公室离窗户到走廊不超过 28 英尺;这样的楼层越多越好;外墙用石灰石;1931 年 5 月 1 日完工。主设计师威廉·兰姆写道,这「意味着从开始画草图算起,一年零六个月」。
5 月 1 日是纽约传统上签新写字楼租约的日子。纽约市地标保护委员会后来写道,对一栋投机性的写字楼,这个日子至关重要。
据兰姆自己的记述,帝国大厦的整体方案是在业主公司开会前一晚,用两个小时定下来的。一个通宵过去,第二天桌上已经有了五六张主要平面图、一张立面图、一张透视图和一份可出租面积表。
图纸一夜就出来了。最后那一天,却在第一张图之前就定好了。
倒着设计的楼
这个日子一直伸到了你绝想不到和日历有关的细节里。兰姆的合伙人什里夫解释过:把窗户装得比石墙稍稍往外突,窗间用金属板,大部分石料就成了简单、重复、好加工的块。石匠只管往上砌,不用等窗户。他写道,这个选择对缩短从草图到开工的时间「至关重要」。
施工用了 410 天。1931 年 5 月 1 日,大楼落成。
动手之前,先想清楚「做完」长什么样,再往回排。
史蒂芬·柯维把这一条列为 1989 年《高效能人士的七个习惯》里的第二个习惯。他的说法是:凡事都要创造两次,先在脑子里,再在现实里,就像房子先是一张蓝图,然后才有人砌第一块砖。柯维把它推到了盖楼之外:他请读者想象自己的葬礼,想想希望别人在那天怎么说自己;按 FranklinPlanner 博客的转述,接下来就从那里往回推,定下眼前的目标。
终点告诉不了你的事
帝国大厦的终点是一个日子,它准时到了。可这栋楼要的是租金,大萧条的头几年,楼里只租出去一半,人称「空国大厦」。投资人想招的大公司,去了更北边的楼。终点清楚,能把你带到你说出来的那个地方;到了以后,那里还值不值得去,它管不了。
柯维的葬礼练习是他给的建议,不是研究得出的结论。范围更窄的「从目标往回排计划」,倒是有几项研究。2017 年,Jooyoung Park、Fang-Chi Lu 和 William Hedgcock 报告:倒着排计划的人,干劲更足,对成功的预期更高,时间压力更小,在目标上也做得更好。其中一项研究里,为期末考试倒着排复习计划的学生,考得比顺着排的好。目标越复杂,这个好处越明显。不过参加者都是学生,计划的是功课、考试和求职面试,而且这只是一篇论文里的几项研究。
更早的一组研究泼了点冷水。2016 年,Jessica Wiese、Roger Buehler 和 Dale Griffin 发现,倒着排计划的人预计的完成时间更晚,其中一项研究里,他们的预测因此不那么过分乐观。可这份改进来自预测往后挪了:这项研究没有检出实际完成时间的显著变化。从终点往回看,让人把活儿看得更实在,却没有证据表明它让人干得更快。
没有终点的入职改进
假设上面让你「改进新工程师的入职」。你可以从头做起:更新欢迎文档,配一个带教伙伴,把内部维基理一理。
你也可以先写终点:新工程师入职第一周,往生产环境交一个小改动。然后往回推。交改动,要有人审过的代码;写代码,要有能用的开发环境;开发环境,要一台开好权限的电脑。而电脑权限,你这才发现,审批要八个工作日。
欢迎文档会写得很漂亮。新人照样坐在那儿等电脑。
终点藏在测试里的任务
AI 编程智能体碰到的,是这个问题最纯粹的样子:它拿到一段问题描述,而判断修没修好的标准,放在另一个地方。
SWE-bench 是一套评测编程智能体的题库,题目取自 GitHub 上真实的问题,用当初修复时写的测试来判分。2024 年,OpenAI 请 93 位有经验的 Python 开发者筛查了其中 1699 道题。38.3% 被标为描述不清,问题是什么、该怎么解都说不准;61.1% 被标为测试可能把正确的解法判错。OpenAI 一共筛掉了 68.3%,也承认这轮筛查可能偏严。
举一个例子:一道题问的是,scikit-learn 某个函数里的 copy 参数为什么不起作用。判分的测试却要求弹出一条特定措辞的弃用警告,而问题描述里一个字也没提。终点只存在于测试里。
你每次把「修一下导出的那个 bug」只放在自己脑子里交给智能体,就是在出这样的题。让它动手之前,先写下你打算怎么判定做完,放进指令里。再把任务原文单独交给一位同事,或者一个新开的模型会话,问它「做完」指什么。多问几次。如果答案总跟你的不一样,就说明任务可能没写清楚,改清楚再交。不然,智能体可能就在猜一条谁也没写下来的弃用警告。