Blog

Blog

PHODAL

AI Coding Fluency:从工具使用到人机协作的软件工程

生成式 AI 正在迅速进入软件开发流程。从最初的代码补全工具,到能够执行复杂任务的智能体,AI 在开发中的角色正在不断扩大。

然而,在许多组织中,人们仍然把 AI 编程理解为一种工具升级:更聪明的 IDE 插件、更强大的代码生成器,或者更方便的技术问答助手。

这种视角很容易低估 AI 对软件工程的真正影响。

在越来越多的团队中,AI 不再只是提供建议,而开始参与实际开发任务,例如生成模块、运行测试、修复错误,甚至创建 Pull Request。软件开发正在逐渐从 “人使用工具” 的模式,转变为 “人与 AI 协作” 的模式。

为了理解这种变化,我们可以借鉴 Agile Fluency Model 的思想,将 AI 编程看作一种能力演进,而不是一次性的技术 adoption。这种能力演进,可以称为 AI Coding Fluency

AI Coding Fluency 模型

AI Coding Fluency 描述的是团队在使用 AI 进行软件开发时逐渐形成的一组能力。这些能力不仅包括 AI 工具的使用方式,还包括人机协作模式、工程系统支持、质量治理以及上下文管理。

随着团队能力的提升,AI 在开发流程中的角色也会逐渐发生变化。从最初的辅助工具,到能够执行复杂任务的智能体,开发者与 AI 之间的分工不断演进。

下表展示了一个典型的 AI Coding Fluency 演进模型。

Fluency Level (流畅度) Human-AI Collaboration (人机协作) SDLC Coverage (生命周期覆盖度) AI Engineering Harness (工程化支撑) Governance & Quality (质量与治理) Context Engineering (上下文工程)
Awareness
认识 / 意识唤醒
问答求助:开发者提问,AI 解答 信息获取:技术查阅、代码片段解释与生成 零散工具:独立对话 UI,无系统集成 完全人工:依赖人工 Review 代码 瞬时上下文:单次对话,无记忆全靠手动
Assisted Coding
辅助编码
智能补全:开发者主导编写,AI 即时补全或预测 编码调试:IDE 内代码生成、错误修复、基础单测 IDE 插件集成:基于 IDE 的基础观察-动作-反馈 传统校验:Linter、Format 校验,人工防幻觉 文件级上下文:激活的当前文件、相近 Tab 页
Structured AI Coding
结构化开发
任务委托:开发者定义 Spec,AI 协助生成完整模块 流程拓展:批量测试生成、代码重构、基础脚手架 Workflow 闭环:IDE/CLI Agent + CI 触发 + 自动反馈 融合验证:静态分析阻断、测试覆盖率门禁 知识库 / Repo 级检索:仓库级 RAG,搜索历史 Issue / PR
Agent-Centric
智能体为中心
人类专注于拆解目标与构建环境,智能体负责繁重执行 泛代码生成:AI 不仅写业务代码,还管理 CI/CD、监控仪表盘等 智能体基建:赋予智能体本地可观测性栈与 UI 操控权 架构约束:通过针对 Agent 定制的 Linter 强制执行架构边界 智能体可读性:代码仓库即记录,采用“目录地图 + 渐进式披露”
Agent-First
智能体优先自治
人类不再手写代码,专注验证系统杠杆与业务价值 端到端自治:智能体自主复现 Bug、修复、验证并合并 PR 高吞吐闭环:极速合并策略、Agent 之间的多轮 Review 后台垃圾回收:后台智能体定期清理代码熵值与技术债 知识自我演进:专职“知识智能体”自主生成和维持系统记忆

AI Coding Fluency 的能力演进

像许多 Fluency 模型一样,AI Coding Fluency 并不是一个严格的成熟度路径。不同团队可能在不同阶段同时具备部分能力。这个模型的目的不是评估组织成熟度,而是帮助团队理解 AI 编程能力的演进方向。

在最初的 Awareness 阶段,团队主要通过对话界面或简单工具使用 AI。开发者向 AI 提问,例如解释代码、生成函数或查找技术信息。AI 在这个阶段更像一个增强的知识助手,开发流程仍然完全由人类主导。

当团队进入 Assisted Coding 阶段时,AI 开始深度集成到开发工具中。例如 IDE 插件可以提供智能补全、代码生成和错误修复。开发者仍然是主要实现者,但 AI 已经能够显著提高开发效率。工程系统在这个阶段通常仍然依赖传统质量机制,例如 Linter、代码格式检查和人工 Review。

随着团队逐渐探索 AI 的能力,会进入 Structured AI Coding 阶段。在这个阶段,开发者不再只是要求 AI 生成代码,而是以任务或规格(Spec)的方式与 AI 协作。例如,通过描述功能需求,让 AI 生成模块结构、测试和实现代码。工程系统开始形成自动反馈闭环,例如通过 CI/CD 执行测试、静态分析和质量门禁。

在更成熟的团队中,AI 可能成为开发流程中的主要执行者。在 Agent-Centric 阶段,人类开发者更多地专注于目标拆解和环境设计,而智能体负责执行开发任务,例如生成代码、运行测试和修复错误。工程系统开始为智能体提供专门能力,例如可观测性接口、自动化工具链以及针对智能体的架构约束。

最终,在 Agent-First 的环境中,AI 可以在一定程度上自主执行开发流程,例如复现问题、生成修复并通过测试验证。开发者的角色更多地转向定义系统边界、验证结果以及持续演进工程系统。软件开发开始进入一种新的模式:AI 负责实现细节,而人类负责系统设计与价值判断。

AI 编程的关键挑战

当 AI 开始参与开发流程时,许多传统的软件工程假设开始发生变化。

首先是 信任问题。AI 可以生成大量代码,但开发者往往难以快速判断这些代码是否可靠。如果缺乏有效的验证机制,开发者很容易陷入不断检查 AI 输出的循环。

其次是 上下文问题。AI 的能力高度依赖上下文信息。如果 AI 无法理解系统架构、依赖关系或业务规则,它生成的代码往往难以真正融入现有系统。

第三是 任务设计问题。许多开发任务并不是简单的代码生成问题,而是跨越多个模块的复杂工作。开发者需要学会如何将问题拆解成 AI 可以理解和执行的任务。

这些挑战说明,AI 编程的核心问题并不只是模型能力,而是 协作方式

从工具使用到协作能力

这种变化与企业数字化转型中的一个重要认知转变非常相似。

在早期的数字化实践中,许多组织把重点放在技术 adoption 上,例如引入云平台、大数据平台或移动应用。但后来人们逐渐意识到,数字化并不是简单地采用新技术,而是形成一组能够持续创造价值的能力。

这一思想在 Digital Fluency Model 中得到了系统化表达。Digital Fluency 并不是关于技术本身,而是关于组织是否具备利用技术创造价值的能力。

AI 编程也面临类似的问题。

关键问题并不是团队是否在使用 AI,而是团队是否形成了 人与 AI 协作的能力。当这种能力逐渐成熟时,AI 不再只是开发者的工具,而成为软件工程系统中的一个参与者。

人机协作的软件工程

当 AI 进入开发流程后,软件工程体系本身也需要发生变化。

在传统的软件开发中,工程体系主要围绕人类开发者设计。例如代码 Review、架构规范和开发流程,都是为了支持团队协作。

在 AI 编程环境中,工程体系需要同时支持 人类协作和人机协作

开发者需要能够清晰描述问题、提供必要上下文,并通过测试和反馈验证 AI 的输出。与此同时,AI 需要能够访问工程系统,例如构建工具、测试框架和代码分析工具,从而完成开发任务。

在人机协作的软件工程中,开发流程逐渐形成一种新的循环:人类定义目标,AI 尝试实现,工程系统提供反馈,人类再根据结果调整任务。

这种循环并不是简单的“AI 写代码,人类检查”,而是一种持续的协作过程。

结语

生成式 AI 正在改变软件开发的基本模式。从代码补全到智能体编程,AI 在开发流程中的角色正在不断扩展。

在这个过程中,真正决定团队能力的,并不是使用哪一种 AI 工具,而是团队是否能够形成有效的人机协作方式。

AI Coding Fluency 提供了一种理解这种演进的视角。通过逐步建立人与 AI 的协作能力,团队可以更好地利用 AI 的潜力,同时保持软件系统的质量与可持续演进。

随着这些能力逐渐成熟,软件开发可能会进入一个新的阶段:开发者专注于系统设计与问题建模,而 AI 承担越来越多的实现工作。


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签