上周,我和 Claire Giordano 一起录制了一期 Talking Postgres 播客,主题是“AI 如何改变软件开发”。我们聊得很愉快。以下是经过轻度编辑的转录文本中的一些精彩片段(给 Claude 的提示词是:“进行非常微小的编辑以去除口语中的不流畅表达”)。
这是我一直在试图构建的一个观点的最新版本,即为什么在使用编码智能体(coding agents)时,有时将“代码行数”作为生产力指标确实是有意义的。以下内容出自播客的 35:01 处:
很多人会告诉你,用代码行数来衡量生产力是毫无意义的。但我其实不同意,因为这里存在一个硬性限制。在过去,一个软件工程师每天只能产出几百行生产环境就绪的代码——而产出 200 行运行正常、经过调试、达到生产级水平的代码,就已经是非常高效的一天了。大多数时候,你一天只能写 50 或 60 行。
如果智能体能让你产出一千行调试好的代码,那确实是一个非常显著的提升——前提是代码质量保持不变:可维护、经过测试等等。使用智能体确实可以达到这个水平,但这需要极高的技能、知识和经验。这正是资深工程师的价值所在。
作为一个独立的工程师,我现在能做的工作比没有智能体时多得多。所以你可能会问,为什么公司还需要不止一个工程师?除了显而易见的“巴士系数(bus factor)”问题——只有一个人的团队是一个设计得非常糟糕的团队——答案在于,新的限制因素是认知容量(cognitive capacity)。我可以把写代码的速度提高 100 倍,但我没有足够的认知容量去掌控 100 倍的代码量。因此,你仍然需要一个工程师团队,以便在团队成员之间负载均衡这种认知容量。
还有在 46:03 处关于“概念完整性(conceptual integrity)”的讨论,Claire 将其比作温彻斯特神秘屋(Winchester Mystery House)!
Simon:《人月神话》(The Mythical Man-Month)中有一个概念叫“概念完整性”——设计良好的软件具有一种完整性:它不会带来意外,它恰好覆盖了正确的业务领域,所有东西都契合在一起且合乎逻辑。但在使用编码智能体时,做到这一点要困难得多。因为你可能突然有了一个关于新功能的想法,运行一个提示词