这是鼎叔的第一百四十五篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。

欢迎关注本专栏《敏捷测试转型》,大量原创思考文章陆续推出。

去年AI编程在各大公司得到加速落地,于是鼎叔近期研究了AI编程实践对于开发工作流的改变,最深的感受就是:敏捷理论依然在引导着AI时代的研发变革,它非但没有过时,甚至被进一步强化和提纯了。

通过AI(LLM)驱动的工具进行编程实践,本质上是希望重构软件开发的全流程,把开发者从繁重的脏活累活中释放出来,聚焦更有创意和更高价值的需求定义和系统设计工作。

开发者的角色变化

先从人开始讲起,再讲工作流和提效场景,最后是工具。

图片

从“代码产出者”变成“核心文档定义者”

之前技术人员普遍不喜欢写文档,未来,关键文档将成为开发者的首要工作。

开发者要把比较模糊的需求文档翻译成更容易AI实现的精准文档,包括功能边界、数据结构和架构设计,最终实现“文档即代码”。对文档进行轻微修改,AI会自动生成新的代码和数据库。

功能边界可能比想象中的更重要,AI自动化产出速度极快,但功能的冗余会带来可用性的快速下降,以及体验问题的数量暴涨。毕竟产品是给人用的,而不是AI,所以现阶段人更适合定义功能范围。

只要文档足够详细,不同模型的生成都不会偏离核心逻辑,只是速度不同。

注: 有同学可能会质疑,敏捷理论不是强调可工作的软件大于文档么?

鼎叔的观点是,在AI编程的当前发展阶段,人和AI的沟通还不对等,人的速度太慢,AI有时会陷入越改越错的腐化状态,这时文档就是对齐两者目标的准绳。也许将来AI助手能做到始终心有灵犀,文档也就没那么重要了。

知识资产的管理者

文档成为开发者指引AI工作,以及验收成果的关键,这属于团队的核心资产,但不是全部。

人类很适合成为知识资产的管理者,把控入库资产的高品质和完整性,减少低质量文档带来的幻觉和低效。

新手工程师将成为受益者,获得更有支持性的学习曲线,文档不再杂乱晦涩,AI可以随时耐心答疑。

知识库的更新是传统技术团队的难题,但AI可以帮助知识库进行动态更新,提供崭新视角,支持成员持续提问式学习,也鼓励共享优秀的提示词模板。

人+AI的新型协作关系

传统编程是人+人的协作,尤其是结对编程和code review活动。

人+AI模型构成了全新的开发协作范式,开发者的角色从“代码实现者”变成了AI的监督者和引导者。新角色能够:

  1. 把核心业务需求翻译成清晰的prompt,并包含约束条件。

  2. 把复杂任务拆解为小步骤,避免AI生成混乱的代码。

  3. 审查AI生成的代码,包括异常场景和性能问题,确保符合约定的项目规范。

  4. AI生成代码时有一个等待时间,开发者正好可以利用它进行一些批判式思考,避免陷入被长时间编程催眠的状态。

  5. 善于编排多个AI agent(或subagent)完成复杂任务,做到指哪打哪。

  6. 形成高度个性化的开发体验。AI可以根据个人的特殊业务流程,或者根据团队的偏好和认知进行定制。

长期角色定位

利用AI编程已经不是可选项,而是必由之路。随着LLM的业务理解能力和推理能力增强,AI编程会从“辅助单一任务”迈入到“自主完成复杂任务”阶段,全流程自主完成整个需求研发生命周期(定义、设计、编码、测试、部署),最终在一定程度上实现“意图编程”(意图即代码)。

到那时,开发者的核心能力就是定义好问题(用户需求),以及评估产品是否要继续发展。

对开发者的能力要求

AI agent没有办法为交付承诺和线上质量负责,只有开发团队才能为此负责,be paid for responsibility,not code.

想要具备担责的能力,开发者就需要把能力往上移:

  • 熟练拆解复杂需求(参考聊聊用户故事的估算和拆解),设计文档中对齐接口契约。

  • 理解算法原理的优劣,而非记忆大量语句。

  • 对新技术要学得比以前更快,才能驾驭好越来越强的AI。比如,AI编程大流行可能导致全新的动态编程技术开始涌现,参考线上用户数据调整代码。

  • 始终提升对技术架构的判断力。

  • 掌握合规和安全知识,把好发布关。

工作流与高效协作场景

先分享两张阿里巴巴做AI coding总结的工作流视图,比较清晰完整,有代表性。

图片

图片

我们按一个项目的闭环流程顺序来捋一下,哪些任务场景最容易被AI agent提效。

一 作为新人理解陌生代码

让新人快速了解代码的宏观作用,如“这个函数实现了什么功能?请解读它的调用链路”

二 实时互动的代码助手

主要体现在代码搜索和答疑、代码补全、错误预警等角度。这些能力和编程流程融为一体,基于代码库上下文和过去案例的分析,预见性地满足编码意图,揭示了潜在缺陷,并提供了定制化的优化实践。

AI代码助手还能够保持代码风格的一致性,方便开发者在切换项目时更容易维护代码。它利用大量代码样本训练的神经网络,能做到对各种编码模式的细致掌握。

三 重构遗留代码

模块重构可能会引入各种新问题,导致开发者如履薄冰,AI agent可以帮忙风险预判,提供初步重构方案,让开发者审查提问。

四 撰写技术文档初稿

很多开发者对写文档还是发怵的,可以利用某些擅长写技术文档的大模型,节约大量写初稿的时间,人只需要在方案骨架上提出修改意见或者手动调整。

五 编写单元测试,推荐TDD(测试驱动开发)

AI自动生成常见单元测试用例非常轻松,开发者可以从特殊场景和特殊参数覆盖的角度补充意见。

TDD是非常有效的高质量研发模式,但是想在团队中推进实践很不容易,AI agent则没有这个担心,测试代码本身就成为质量规范的自动化保障。参考:聊聊测试驱动开发

AI agent能确保本团队的代码质量跟上行业标准,这种对质量的警觉性是传统团队极难获取的。

六 排查线上问题

之前文章分享过,AI擅长分析错误日志,识别常见错误模式,提出启发性解决手段,甚至推荐最契合的开发负责人来评审。参考聊聊大模型如何为敏捷研发提效

人可以核实解决效果,评审修复代码是否引入新的风险。

七 推送代码及部署

让大模型提交推送,就不用担心推错文件、用错git命令了,一些commit冲突问题可以自动解决。

AI编程的工具能力

按时间顺序解读AI编程的工具链,就是固定的全局提示词模板,选择合适的大模型服务,掌握MCP接口服务,针对特定任务选择合适的skill插件。

图片

Prompt全局模板(.md文件)

提示词质量对AI生成效果影响很大,在AI持续对话编程的场景下,很容易上下文资源耗尽,其中重要原因就是输入提示词的重复低效。所以要让AI先仔细阅读“guide”再开始干活。

固定的提示词文件可以整体设置项目编程风格,引用文件路径,工作策略(先做啥后做啥),交付格式,禁止或约束等。

这样就把prompt变成了固定资产,而非消耗品,能大幅增强效果,并降低token成本。

大模型选择

引用各方实践者的观点: GPT,Gemini,Claude等模型的最新版本在性能方面很强,适合用于复杂的重构任务,算法设计,架构设计,但是注意代码资产的脱敏。建议结合任务类型和实测效果来选型。

一般而言,可以用内部模型进行知识库的学习和答疑,以及敏感数据分析。再把脱敏内容给外部高性能模型寻求重构优化方案和测试保障。

很多实践者给了一句忠告,尽量使用强力模型的新版本,性能的提升可能大于开发者的辛苦优化效果。

Multi Agent多智能体协同工具

多智能体协同可以完成更加复杂、更长周期的需求开发,可以被看作是一个虚拟的AI研发团队。

单一大模型在开发中遇到的常见瓶颈 “能力有限,多轮对话容易出现逻辑混乱”,在多智能体协同中可以得到更鲁棒的解决。每个agent专注自己扮演的角色,认领分工,互相补位。

掌握MCP(模型上下文协议)

MCP可以理解为AI编程的万能接口,通过安全的统一标准让模型调用外部工具和数据。在MCP出现之前,自己的模型想要部署到外部厂商的云平台,适配代价很高昂,一旦云平台升级,可能大模型服务就无法使用了。

通过MCP就可以一次封装,任意调用,改变以往“只能靠嘴说,难以接入真实平台”的尴尬,极大降低运维成本。

能力插件(以Claude的skill为例)

鼎叔看Claude Code教程中Skill的用法占据了相当篇幅。

Skill是让大模型按照一定条件触发特定脚本(确定性的垂直能力,类似传统编程功能),形成一套AI处理规则库,拥有独立的知识库。

即使开发者换人了,这套能力和使用规则都是稳定的,包括:上下文过滤规则,安全和规范检查,自动化测试等。

skill可以做到按需加载,降低上下文token消耗。

结语-感想

传统编程时代,开发者的核心价值是大脑里的编码经验;在AI编程时代,开发者的价值是建立文档驱动研发流程,不断优化适合本团队的提示模板和AI技能组合,具备发布审计能力。

开发者要改变不断切换工作的低效模式,转型为“全局思考者”,负责核心代码逻辑的思考,并调度好各个AI完成互不重叠的子任务。

AI时代能用好大模型的开发者,通常具备系统思考和敏捷精益理论: 擅长先思考为什么(分析用户价值),而不是急着做什么(尽快开工交差)。

AI 的价值不再只是“更快完成指定任务”,而是通过工作流重塑“开发者的高价值边界”。新时代的AI编程平台更加强调长时间工作的稳定性,生产级别的规划设计。

未来的AI奇点时刻,可能就依赖AI编程率先到达奇点,代码是纯粹的逻辑运行,能带动万物的无限可能。

图片

下一个想探讨的AI编程主题,是如何系统化提升AI编程的确定性。

参考文章: 

阿里云-从传统编程转向大模型编程

阿里云效-AI Coding 工作流实践分享

更多推荐