很多开发者开始使用ChatGPT、Codex以后,会发现一个非常明显的变化:

以前:

完成一个任务,需要自己写代码、调试、测试。

现在:

AI可以直接告诉你:

“任务完成。”

甚至附带:

修改说明。

测试结果。

实现总结。

看起来非常完整。

于是很多人开始形成一个习惯:

AI说完成。

测试通过。

直接合并。

但随着AI参与越来越复杂的开发任务,一个新的问题出现:

AI认为完成,不一定等于项目真正完成。

因为软件工程里的“完成”,从来不只是:

代码能运行。

测试能通过。

真正的完成还包括:

需求是否满足。

边界是否覆盖。

长期是否可维护。

风险是否可接受。

所以AI时代,一个新的问题出现:

AI越来越会执行任务,但人越来越需要重新定义什么叫完成。


一、真实场景:AI告诉你Done,但上线以后才发现问题

假设你让Codex完成一个需求:

“给订单系统增加自动重试机制。”

AI执行:

分析代码。

修改服务逻辑。

增加重试策略。

补充测试。

运行测试。

最后输出:

任务完成。

测试全部通过。

你查看结果:

代码结构合理。

没有明显问题。

于是准备上线。

上线以后发现:

某些订单出现重复处理。

为什么?

因为AI完成的是:

“增加重试机制。”

但是项目真正需要的是:

“增加安全的重试机制,同时保证订单操作幂等。”

两个目标看起来接近。

实际上完全不同。

AI完成了它理解的任务。

但没有完成业务真正需要的任务。

这就是:

Task Done ≠ Project Done


二、为什么会发生?因为AI的完成标准和工程完成标准不同

这是AI Coding时代非常关键的问题。

AI判断任务完成,通常基于:

代码是否修改。

测试是否通过。

错误是否消失。

功能是否运行。

但工程里的完成标准更加复杂。

例如:

一个接口修改完成。

不仅要:

返回正确。

还要:

性能符合要求。

兼容旧客户端。

不会破坏其他流程。

未来方便维护。

这些信息很多时候:

不会自动存在代码里。

也不会自动进入AI上下文。

所以AI的Done判断,本质上是:

局部完成。

而工程需要的是:

系统完成。


三、工程机制:AI优化的是Task Completion,不是Goal Alignment

可以把任务分成两个层次。

第一层:

Task Completion

任务完成。

例如:

添加接口。

修改代码。

通过测试。


第二层:

Goal Alignment

目标一致。

也就是:

这个修改是否真的解决了最初的问题。

是否符合业务方向。

是否符合长期设计。

AI通常很擅长第一层。

因为:

代码。

测试。

结构。

这些信息比较明确。

但第二层更加困难。

因为涉及:

上下文。

业务。

经验。

长期判断。

所以出现:

AI完成任务速度越来越快。

但目标一致性仍然需要人工确认。


四、为什么AI越强,“Done”这个词越危险?

以前:

开发者自己写代码。

自己知道:

为什么这么改。

哪些地方可能有问题。

所以完成状态比较清楚。

但AI加入以后:

执行过程越来越自动化。

人参与越来越少。

于是容易出现一种错觉:

“AI已经检查过了。”

“测试已经通过了。”

“应该没问题。”

但问题是:

AI检查的是:

它看到的信息。

不是整个系统。

例如:

AI不知道:

某个客户有特殊流程。

某个旧系统依赖隐藏行为。

某个业务规则没有写进代码。

所以越强的AI,越容易产生一种风险:

高质量地完成错误目标。


五、为什么Agent时代这个问题会更加明显?

因为未来AI任务会越来越长。

现在:

让AI改一个函数。

未来:

让AI完成:

需求分析。

方案设计。

代码修改。

测试。

部署准备。

整个流程。

任务越长:

中间产生的判断越多。

隐藏假设越多。

最终“完成”的定义越复杂。

未来开发者面对的可能不是:

“AI有没有写完代码?”

而是:

“AI有没有完成正确的问题?”


六、自测指标:你的AI任务是不是存在Done错觉?

可以建立一个指标:

Done Gap(完成差距)

定义:

AI认为完成的状态。

和项目真正需要完成的状态之间的差距。

可以观察:


第一:

AI是否经常说完成,但你还需要大量修改?

如果是:

说明Done Gap较大。


第二:

测试通过后,是否仍然出现线上问题?

如果是:

说明验证标准不足。


第三:

你是否经常发现:

“代码没问题,但方向错了。”

如果是:

说明目标定义不足。


第四:

你是否提前定义了完成标准?

如果没有:

AI很容易自己定义Done。


七、如何降低Done Gap?

第一:不要只告诉AI任务,要告诉AI成功标准

不要:

“增加缓存。”

改成:

“降低接口延迟,同时保证数据一致性,不改变业务行为。”

目标越明确:

AI越容易对齐。


第二:提前定义验收条件

例如:

完成必须满足:

接口响应降低多少。

测试覆盖哪些场景。

不能影响哪些模块。

哪些行为必须保持。

让Done从:

感觉完成。

变成:

可验证完成。


第三:要求AI输出“未验证风险”

任务结束以后,不要只问:

“完成了吗?”

改问:

“哪些地方虽然完成,但仍然存在未知风险?”

让AI主动暴露边界。


第四:复杂任务分阶段验收

不要:

AI执行30分钟。

最后一次检查。

应该:

方案确认。

小范围修改。

阶段测试。

继续推进。

每一步确认状态。


八、为什么很多人感觉AI越来越强,但项目效率提升没有想象中大?

因为他们提升的是:

执行速度。

但没有提升:

验收速度。

例如:

AI一天生成过去一周的代码量。

但人还是按照过去方式Review。

结果:

生产速度提升。

验证成为瓶颈。

最终效率没有完全释放。

所以AI时代真正需要升级的是:

整个开发流程。

不是单纯增加一个代码生成工具。


九、为什么这类问题不是升级模型就能解决?

很多人看到:

AI任务跑偏。

AI理解不完整。

第一反应:

模型不够强。

但很多问题来自:

目标定义。

上下文准备。

验收标准。

风险管理。

更强模型可以提高执行能力。

但不能替代:

工程判断。


十、什么时候Plus通常够用?

如果你的使用场景:

写函数。

改Bug。

生成脚本。

补测试。

处理明确需求。

那么:

Plus通常已经够用。

因为任务边界清楚。

完成标准简单。

AI执行效率已经足够。


十一、什么时候Pro才真正匹配?

Pro更适合:

你已经建立成熟AI开发流程。

能够:

定义目标。

拆分任务。

设置验收标准。

Review结果。

控制风险。

但你的工作需要:

大型代码库分析。

复杂Agent任务。

长时间执行。

多个模块修改。

持续迭代。

这时候:

更强AI能力才能真正提高生产力。

判断逻辑:

不是AI能不能完成任务,所以需要Pro。

而是你已经能管理复杂AI任务,需要更强执行能力。


最后:未来开发者最大的能力,是重新定义“完成”

AI时代最大的变化,不是:

AI会不会写代码。

而是:

AI开始大量执行代码工作。

于是人的价值开始转向:

定义目标。

制定标准。

验证结果。

控制风险。

因为真正危险的不是:

AI没有完成任务。

而是:

AI非常认真地完成了一个错误的任务。

未来优秀开发者,不一定是:

让AI最快完成的人。

而是:

最清楚什么才叫真正完成的人。

持续更新Codex、大模型开发相关技术内容。
长期使用各类代码大模型,整理了稳定的AI会员订阅渠道!

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。

更多推荐