ARTICLE · 1154090
AI Coding 干活不顺,多半是话没说清楚
AI Coding 干活不顺,多半是话没说清楚
测试在群里丢过来一句:「导出功能不对。」
我顺手转给 AI:导出功能不对,你看看。AI 很勤快,马上定位、马上改,几分钟就给出一版方案。我提交,测试再看:「还是不对啊。」
我把「还是不对」转给 AI,它又改了一版。测试:「还是不对。」
第三轮我停下来了,跑过去问测试:到底哪不对?测试说:导出的 Excel 里,金额那列是文本格式,没法筛选求和。
我回头跟 AI 说:把金额列改成数字格式。它一分钟改完了——来回三轮,真正有用的信息就这一句。
流程没变,变的是多了个「同事」
这段时间 AI Coding 用得特别多。一个稍微复杂点的功能,流程基本都是:需求分析、设计、开发、测试、修 bug、再测试、再修 bug,循环到没问题,上线。
跟以前的开发流程差不多,但每个环节里都多了一个「同事」——AI。它不吃饭不摸鱼,响应快,活也不差。
但合作下来我发现,流程顺不顺,跟 AI 聪不聪明关系不大,跟我们「说得清不清楚」关系最大。同样一个需求,描述清楚,一遍过;描述含糊,能来回拉扯一下午。
踩了一圈坑,我把卡点归成三类。
AI 干活卡壳的三个卡点
卡点一:需求没定住,做完了又发散
最常见的一幕:需求说做 A,你带着 AI 把 A 做完了,需求方看了效果——「诶,顺便把 B 也加上吧」「C 那里能不能也处理一下」。
放在以前,这些「顺便」会被排期、会被砍。砍单听起来烦,其实它就是一次需求澄清:哪些必须做、哪些以后做,聊完大家都清楚。
现在有 AI 在,加一个功能就是几分钟的事,「顺便」的成本看起来是零。于是 A 做完冒出 B,B 做完冒出 C,改到最后,代码被一个个「顺便」缝得面目全非,谁也说不清哪句是本意。
AI 不会替你踩刹车,你发散它跟着发散。
刹车得自己踩:开工前把「这次做什么、不做什么」写下来,白纸黑字发给它。超出范围的,记到下一期,别当场接。
卡点二:讨论不透,问题没预估全
需求讨论阶段,人跟人聊是有来回的:你提个方案,对方质疑一句,边角问题就冒出来了——并发上来了怎么办?历史数据要不要处理?中途失败了算谁的责任?
带着 AI 干活的时候,这一步特别容易被跳过。你脑子觉得「想清楚了」,直接让 AI 开工。AI 又特别听话,你没想到的它不提醒,大部分时候它顺着你的话说。上线之后,那些没聊透的问题才一个个冒出来。
我的做法是反着来:动手之前,让 AI 扮演那个爱抬杠的同事,先让它列问题——这个方案有哪些没想清楚的地方?边界情况有哪些?它列出来的每一条,都是测试阶段才会挖出来的坑。让它先把坑问出来,比上线后填便宜多了。
卡点三:bug 描述不清,AI 修的是它猜的 bug
这是我遇到的最大的坑,单独展开说。
测试提单,经常是这样的:「功能不正确。」「不生效。」「不成功。」「功能不对。」
这些词,人看是看得懂的。因为人脑子里自动补全了一堆没说出口的信息:昨天上线的版本、这个功能平时的表现、上次类似的问题长什么样。补全完,「功能不对」就变成了一个具体的 bug。
但 AI 脑子里没有这些。它拿到的就是字面那几个字:什么功能?哪不对?正确的应该是什么样?实际的是什么样?一个都没有。
说句公道话,「功能不对」这种描述,对一个活人开发来说都很难定位——你得追着测试问半天。AI 连追着问这一步都省了,它会直接按自己的理解动手改。它修的不是你报的 bug,是它猜的 bug。
我见过最典型的情况:AI 拿到「功能不对」,判断不出具体问题,就「顺手」把周边代码重构了一遍,加了一堆防御性判断。看着特别努力,实际跟你要修的半点关系没有,还顺带引入了新问题。修 bug 变成打地鼠,一个没打中,又冒出来俩。
问题出在哪?这几个词是观点,不是信息。
▍人话翻译「功能不对」表达的是「我不满意」,但它没有传达任何能让对方动手的信息。一条能干活的信息,至少有四块。
能干活的信息,有四块
对照一下,同一件事,两种说法:
✗ 原始描述:导出功能不对。✓ 完整描述:订单列表页点导出,选了 10 月的订单。导出的 Excel 里金额列是文本格式,没法筛选。期望是数字格式。
完整描述,AI 基本一遍改对;「功能不对」,就要看你运气了。
对人说「功能不对」,靠的是人脑补全加追问,两个都能凑合。AI 恰好两个都不擅长:它没法补全你脑子里的上下文,它主动问,你也未必答得全。所以这些补全的活儿,得你在开头就干掉——直接写进描述里。
我现在的做法
给 AI 描述问题,我现在有个固定模板:
【复现步骤】我做了什么,1、2、3【期望】应该发生什么【实际】实际发生了什么【范围】只修这个,其他别动
最后一条是专门防发散的。不写,它经常热心得把附近代码都「优化」一遍。
需求也是同理。我现在的体感是:以前需求文档写个大概就行,细节开会补全,反正执行的人能猜;现在需求文档是写给 AI 的执行手册,你含糊一个词,它就往含糊的方向执行,而且执行得特别自信。
以前说不清,同事能猜;现在说不清,AI 只能猜。
最后
很多人说 AI 把编程门槛降低了。我最近的体感是另一面:写代码的门槛确实低了,但「把话说清楚」的门槛变高了。
以前描述糊弄点,问题不大,执行的人会追问、会脑补、会跟你磨。现在描述糊弄,AI 不跟你磨,它按自己的理解闷头干,干错了重来,时间全是你的。
所以下次觉得 AI 干不好活,先别急着关掉重试,看看递过去的活儿本身说得清不清楚。你多写的那三五行「期望/实际」,省的是来回三轮的拉扯。
AI Coding的最后是我们学会如何说话!