Synth Daily

编程助手把问题搞错了

尽管人工智能(AI)编程助手能帮助团队完成更多任务,但并未提升公司整体的交付效率。根本原因在于,AI 需要清晰明确的需求才能有效工作,而软件开发过程充满了模糊不清的需求和未预料到的边界情况。这不仅没有解决问题,反而加剧了代码的维护难度和技术债务。因此,未来的重点不应是让 AI 写更多代码,而是利用 AI 在开发初期辅助澄清需求、明确架构影响,从而真正改善产品与工程团队的沟通和协作。

AI 编程的现实困境

研究数据揭示了 AI 辅助编程在实际应用中的矛盾表现。虽然任务完成量有所增加,但整体效率和代码质量却不容乐观。

  • 交付效率未提升: 使用 AI 的团队任务完成量增加了 21%,但公司层面的交付指标并未改善。
  • 资深开发者变慢: 经验丰富的开发者在使用 AI 助手时,速度反而减慢了 19%,尽管他们主观感觉自己更快了。
  • 安全漏洞激增: 高达 48% 的 AI 生成代码包含安全漏洞。

开发者的工作是减少模糊性。我们接收业务需求,并将其逻辑精确地描绘出来,以便机器能够执行。写代码本身是容易的部分。

AI 编程助手恰恰在最关键的“减少模糊性”环节上失败了。它们无法像人类开发者一样,在发现需求漏洞时主动与产品经理沟通,而是倾向于将这些问题隐藏在数百行代码中,导致后续的代码审查和修复工作变得更加复杂。

谁从 AI 中受益?一个分化的局面

AI 编程工具对不同经验水平的开发者产生了截然不同的影响。

  • 资深工程师: 他们拥有足够的技术深度来严格审查 AI 的输出,并有自主权来平衡产品和工程的需求。对他们而言,AI 可以成为强大的工具,让他们更专注于架构和产品思维。
  • 中初级开发者: 大多数开发者,尤其是在银行、医疗和政府机构等领域工作的,处境非常尴尬。他们夹在 AI 输出的不可靠性管理层要求加速交付的期望 之间,导致开发者与产品负责人之间的理解鸿沟迅速扩大。

问题根源:技术债务始于会议,而非代码

开发者只有大约 16% 的时间用于编写新代码。其余时间都花在了安全审查、代码维护、部署和需求澄清等操作性工作上。讽刺的是,AI 助手每周虽然能节省约 10 小时的编码时间,但这些收益几乎完全被开发流程其他环节增加的低效所抵消。

AI 产生的代码看起来很合理,如果没有人深入思考过其中的假设和边界情况,它就会被轻易地批准和发布。这相当于把发现问题的反馈周期向后推移,而读代码比写代码要困难得多。

这种业务意图与代码实现之间的脱节被称为技术债务。不加限制地使用 AI 编码正在加速技术债务的累积。

大多数技术债务并非产生于代码中,而是产生于产品会议里。紧迫的截止日期、被削减的范围、以及“先上线,后优化”的决策,这些都塑造了系统,但其背后的原因却很少被记录在代码中。

改变思路:用 AI 解决流程问题

当被问及如何才能最有效地提升效率时,开发者的回答惊人地一致,主要集中在两个方面:

  • 减少上游的模糊性,这样工程师就不必在开发过程中等待产品澄清。
  • 更清晰地了解受影响的服务和边界情况,以便更精确地规划功能范围和分配时间。

这表明,最有价值的改进方向并非代码生成,而是利用 AI 在开发早期介入,帮助团队更好地沟通和决策。

LLM(大语言模型)在这里可以发挥巨大作用。虽然通过自然语言直接生成完美代码很困难,但反过来,利用 AI 分析现有代码结构,并推断某项新需求可能带来的影响,是当前技术完全可以实现的。这种方法能帮助团队在产品会议中实时了解工程背景,从而做出更明智的决策,从根源上减少最昂贵的、因需求与架构错位而产生的缺陷。