
承诺永远一样:把建造委派出去,生产力就飙升。外包曾经这样承诺。AI编程助手现在这样承诺。现实也永远一样:规定要建什么几乎和真正建它一样费时间,而规定不足产出超现实的噩梦。
简单的画面
你雇人做书架。你说”做个书架”。他做出来三尺高,没有背板,隔板间距两寸。你没说的每一个维度都被他的默认值填了,不是你的。你发现要得到你想要的书架,你得描述得详细到不如自己做。唯一完全无歧义的书架描述就是书架本身。
委派的转变
三种形式的委派,实习生、外包团队和AI编程助手,都产出同样的转变。工作的性质发生了变化:
- 从做到规定
- 从建造到教导
- 从创造到验证
每种转变都被呈现为生产力提升。实际上都是工作类型的改变,不是工作量的减少。以前写代码的人现在写规格说明。以前建造的人现在解释怎么建。以前创造的人现在审查被创造的东西。而新的工作,规定、教导、验证,需要与原始工作同样深度的理解,外加把这种理解无歧义地传达出去的额外技能。
温伯格原则在这里落地:人们很少知道自己想要什么,直到你给了他们他们要求的东西。规格说明无论多详细,永远只是意图的近似。规格说明和意图之间的间隙就是所有噩梦住的地方。
规格说明陷阱
从外包团队那里,教训来得很快:
- 你得规定每一个失败状态,因为那不是远程团队”自然就知道”的东西
- 你得规定用哪些库、如何以及在哪里记日志、检查哪些外部API
- 即使一切能想到的都规定了,结果可能满足所有验收标准同时每57次运行让系统崩溃一次
- 演示完美运行而实现建立在H.R. Giger设计的数据结构之上
技术债务的关联是直接的:代码满足规格说明但不包含理解。规格说明捕获了什么,但不是为什么。当写了心智规格说明的人离开,带走了他们自那以后做的所有精化,代码变成了有毒资产。它能用,但没人知道它为什么能用,每一次改动都是赌博。
工作的迷雾变厚:建造者离规定者越远,规格说明就越必须补偿丢失的语境。在极端情况下,规格说明必须详细到变成一种编程语言,此时你意识到一份完全无歧义的程序规格说明叫做程序。
AI版本
AI编程助手以更高速度重复这个循环。承诺:用自然语言描述你想要的,AI来建。现实:自然语言天生就是歧义的,AI用自己的默认值填充每一处歧义,这些默认值来自训练数据,不是你的意图。
工程算法有力地适用:在让AI建某样东西之前,先问这东西是否应该存在。AI会愉快地以比你自己建对的东西更快的速度建错的东西。约束已经转移了:瓶颈不再是编码速度而是规格说明质量,而规格说明质量受限于建造所需要的同样的人类理解。
常见误读
低水平理解:“AI/外包让开发者生产力提升10倍。”
中等水平理解:“AI只是工具,用它做无聊的部分,保留创造性的工作。”
更好的理解:做软件的难处从来不在打字,在思考。 每一种委派技术都承诺消灭打字然后发现思考委派不了。能无歧义地规定该造什么的人,就是已经深度理解了问题到足以自己造的人,这意味着委派对委派者已经做过的工作效果最好,对需要探索的工作效果最差。而价值全在探索里。
核心收获
模式推广到软件之外。每次你委派,给团队、给工具、给流程,你在用做换规定。这个交换值得做的前提是你的规定技能超过你的做的技能到足以抵消翻译开销。对于新颖的、模糊的或探索导向的工作,翻译开销超过了做,委派产出更差的结果而且更慢。《人件》的原则回到这里:经理的工作是让工作成为可能,不是把它规定成存在。而让工作成为可能的最好方式是雇不需要规格说明的人,那些深度理解问题到足以自己发现解决方案的人。
参考:
- Byrne Hobart,Offshoring and AI Agents,The Diff