乐于分享
好东西不私藏

当写代码不再是瓶颈,软件开发就会更快吗?

当写代码不再是瓶颈,软件开发就会更快吗?

最近读到Charles Lamanna的一篇文章《Changing how we build》。

Charles是我所在部门的执行副总裁,目前负责微软Copilot、Agents与Platform相关业务。

他从微软内部的产品实践出发,讨论了一个我最近也反复感受到的变化:AI正在显著提高编码效率,但软件开发并不会因此自动变快。

过去,软件开发最明显的瓶颈之一是编码。

需求已经有了,方案大致清楚,但工程师数量有限,代码写不完,缺陷修不完,测试和维护也需要时间。

现在,Agentic Coding正在快速提高这一环的生产力。工程师不再需要亲手写下每一行代码,而是可以让AI完成大量实现、测试、修改和重复劳动。

从系统角度看,这只是加速了完整链路中的一个环节。编码不再是主要约束以后,决定什么最重要、如何设计系统,以及怎样验证最终产物,反而更容易成为新的瓶颈。

这篇文章给了我一个思考起点,但我真正想讨论的是另一个问题:

当AI释放了生产力以后,为什么我们未必会变得更轻松?

AI让我们终于有能力把事情真正做完

最近一段时间,我让不同的AI Agent承担代码审查、信息跟进、调查分析和一些固定任务。

以前需要排队处理的事情,现在可以并行推进;以前要花很长时间调查、实现和验证的问题,现在也能更快得到结果。

实话说,生产力确实提高了。

但我现在越来越觉得,AI释放出来的产能,最重要的用途未必是做更多新功能,而是让我们终于有时间和精力,把工程真正做好。

过去在紧张的项目里,很多时候只能先解决最紧急的问题。

系统已经亮起红灯,我们先止血、控制影响、让服务恢复,把红灯变成黄灯,就已经很不容易了。

但黄灯不等于问题真正解决。

临时方案有没有清理,根因有没有消除,测试和监控有没有补齐,同类问题会不会再次发生,后续维护者是否理解发生过什么——这些善后工作,常常只能被留到“以后”。

这并不是工程师不想把事情做好,而是在有限时间和紧急压力下,对产能做出的现实分配。先把问题从红灯变成黄灯,往往比追求一次做到100分更重要。

现在AI降低了调查、编码、测试和重复劳动的成本,我们理应有更多机会继续向前一步:

  • 不只是缓解症状,而是解决根因;
  • 不只是让系统恢复,而是补上测试和监控;
  • 不只是留下临时绕行,而是完成清理和重构;
  • 不只是关闭当前问题,而是降低同类问题再次发生的概率。

这里说的100分,不是无限打磨,也不是追求完美主义,而是达到一个清晰的完成标准:问题解决了,风险收住了,善后完成了,结果也经过验证。

从这个角度看,善后本来就是一种真实需求,只是过去经常被有限的生产力压住。

AI最有价值的地方,或许不是让我们把更多事情从红灯变成黄灯,而是终于有余力把黄灯真正变成绿灯。

系统能快多少,取决于下一个瓶颈

软件从想法变成用户价值,需要经过一条完整链路:

发现需求 → 定义问题 → 设计方案 → 编码实现 → 测试验证 → 发布部署 → 用户采用 → 收集反馈

过去,编码实现可能是其中最慢的一环。

AI把这一环加速以后,整个系统不会自动获得同等幅度的提升。生产力能继续向前推进多少,取决于下一处最慢的环节在哪里。

它可能是:

需求选择:能够做的事情太多,但不知道哪件事情最值得做;
上下文与规格:AI执行很快,但目标、边界和验收标准没有说清楚;
架构判断:代码容易生成,但系统复杂度和长期维护成本仍然需要人负责;
质量验证:Agent每天可以生成大量修改,但人和测试系统来不及判断它们是否可靠;
集成与发布:实现已经完成,却仍然卡在跨团队依赖、审批和部署流程;
用户采用:功能发布得更快,但用户并没有真正使用,也没有产生预期价值。

假如AI每天可以生成100个代码修改,而团队每天只能可靠评审10个,系统生产力并没有提高十倍。

剩下的90个修改只会变成在制品,继续等待评审、测试和合并。队列越长,沟通和切换成本越高,最终交付周期反而可能变长。

这就是系统思考里很重要的一点:

局部环节的效率,不等于整个系统的吞吐量。

最危险的做法,是立刻把产能重新填满

生产力突然提高以后,最自然的反应是做更多事情。

文中有个很有代表性的团队案例:有了AI以后,他们没有把原来交付5个功能的目标膨胀成500个,而是仍然交付大致相同数量的功能,把释放出来的大部分工程能力投入质量、可靠性、性能和安全。

结果是,在产品使用量增长的同时,支持请求同比下降了双位数百分比,因为团队能够比过去更快地修复更多缺陷。

这个选择很值得思考。

AI释放出来的产能,可以有两种去向:

  • 用来接收更多需求,持续增加功能和系统复杂度;
  • 用来解决根因、完成善后、偿还技术债,完善测试、监控、性能和用户体验。

第一条路更容易制造“生产力很高”的感觉,因为功能数量、代码行数和任务完成量都会快速上升。

第二条路不一定热闹,但它可能真正提高系统的长期吞吐量。

如果每次效率提升,都立刻被更多需求填满,我们只会得到一个速度更快、在制品更多、复杂度更高的系统。

原来只能做到60至80分的工程,仍然没有机会补到真正完成;原来从红灯变成黄灯的问题,也会长期停留在黄灯。

人也不会因此更轻松,只会以更快的速度处理更多事情。

不要为了使用AI而使用AI

当组织开始推广AI时,很容易把AI使用本身变成目标。

生成了多少行代码、调用了多少次AI、消耗了多少Token、多少人每天使用,这些指标并不先进。它们只能说明AI被使用了,不能说明AI创造了价值。

这些使用量数据可以帮助我们观察采用情况、计算成本或者发现使用障碍,但不应该成为AI是否成功的最终标准。否则,团队很容易为了证明自己正在使用AI而使用AI,甚至生成更多原本并不需要的代码和内容。

AI是手段。真正需要衡量的,仍然是那些本来就存在、也本来就重要的结果:

  • 产品是否更可靠;
  • 用户体验是否改善;
  • 从需求到上线的周期是否缩短;
  • 故障和返工是否减少;
  • 问题是否从临时缓解走向根因解决;
  • 收入、成本和利润是否发生变化;
  • 团队是否能用更少的协调完成同样甚至更好的结果。

简单来说:

不要为了证明我们正在使用AI,而创造一套AI指标。真正的生产力,不是单位时间生成了多少东西,而是AI有没有改善那些原本就重要的结果。

AI让输出变得很便宜以后,这种区分会更加重要。

对个人来说,新的瓶颈可能是注意力

这个问题不只存在于软件团队。

当AI能够帮一个人同时推进更多事情时,个人工作系统也会发生瓶颈迁移。

过去的瓶颈可能是执行能力:很多事情知道应该做,但没有时间亲手完成。

现在,执行能力扩大以后,新的瓶颈可能变成:

  • 是否知道什么最重要;
  • 是否能拒绝低价值需求;
  • 是否能给Agent提供清楚的目标和验收标准;
  • 是否有时间检查越来越多的AI产出;
  • 是否能保护自己的注意力,不被所有新发现的问题拉走。

这也是我最近越来越有感触的一点。

AI让我有能力关注更多事情,但“有能力做”不等于“应该由我做”。

如果每个Agent发现的问题都立刻进入我的待办清单,每一次节省下来的时间都被新的任务填满,那么我得到的不是自由,而是一个吞吐量更高的忙碌系统。

所以,使用AI以后,优先级管理反而比过去更重要。

真正稀缺的资源,正在从“我能不能完成这件事”,转向:

这件事是否值得消耗我和整个系统的产能。

每次提效以后,都问三个问题

AI还会继续提高编码、分析和执行的效率。

每当一个环节明显提速,我觉得都应该停下来问三个问题:

新的瓶颈在哪里?看哪一处队列增长最快、等待最久、返工最多,而不是只看哪个环节产量最高。
释放出来的产能要用于什么?是立刻接收更多需求,还是先解决根因、完成善后,把更多黄灯真正变成绿灯?
AI最终改善了什么真实结果?这些指标本来就存在。如果客户价值、交付周期、系统质量、故障和返工没有变化,代码生成量和AI调用量再高,也很可能只是制造了更多在制品。

AI不会让瓶颈从此消失。

它会不断把瓶颈推向更需要人类判断、更接近系统目标的地方。

这其实是一件好事。

过去我们把大量时间花在实现和重复劳动上;未来,我们可以把更多时间花在选择正确的问题、设计更好的系统,以及判断结果是否真正有价值。

当然,前提是我们没有急着用更多需求,把刚刚释放出来的生产力重新填满,而是愿意把那些长期停留在黄灯的问题真正做完。

共勉。