AI 编程时代的软件工程与项目管理:从执行驱动到约束驱动
本文基于 OpenAI 在 Android 端使用 Codex 的实践,总结了一套 Agentic 软件工程方法论。核心在于为 AI 建立清晰、可执行的工程秩序,而非让其自由生成代码。通过定义不变式(AGENTS.md)、先打地基并提供样板、先规划再实现、多会话并行协作以及测试与 CI 驱动,AI 才能稳定、高质量地放量产出。AI 并未线性加速开发,而是将瓶颈转移到决策、约束与整合上,使项目管理重
AI 编程时代的软件工程与项目管理:从执行驱动到约束驱动
Agentic 软件工程方法论:
梳理重点:
- 定义不变式:分层/依赖规则/代码风格/质量门禁(AGENTS.md)。
- 打地基 + 做样板:人类先写 1–2 个“代表性端到端功能”,作为范式。
- 先规划后实现:让 AI 先读代码→复述系统→产出微型设计文档→分步落地。
- 分布式并行:多会话分工(搜索/复现/实现/测试/重构),你做“指挥与整合”。
- 测试 + CI 驱动:用日志喂 AI 修复,用测试防回归;人类做关键审核。
- 用示例喂上下文:能指向“已有正确实现”就别只讲自然语言。
- 把计划写进文件:长任务超上下文时,让 AI 把 plan 落盘,跨会话保持一致。
详细论述:Codex 当“新任高级工程师”
1) 核心心智模型:把 Codex 当“新任高级工程师”
Codex 很强,但不会自动知道没告诉它的东西(架构偏好、产品策略、真实用户行为、内部规范等),也看不到 App 在真机上如何运行(滚动卡顿、交互混乱等),更容易在缺少引导时做出“能跑但不干净/不符合架构”的实现。
所以正确的分工是:
- 人类:架构、模块化、依赖注入、导航、关键权衡、体验验收、最终质量把关。
- Codex:在已定义好的模式与范围内,大规模产出代码/样板、补测试、按日志修 CI、并行探索方案。
2) “先立规矩再写码”:用 AGENTS.md 把规范产品化
一个非常有效的做法:在代码库里大量放置 AGENTS.md,把目标、约束、风格、检查命令、目录结构等写成“可复用指令”,让不同会话都能持续遵循同一套工程标准。甚至在顶层 AGENTS.md 里写“提交前必须跑 detektFix”等静态检查要求。
可以把AGENTS.md当成 AI 团队的:
- 工程宪法(架构分层、依赖规则、禁止事项)
- 质量门禁(lint / format / test / CI 约束)
- 任务运行手册(如何新增模块、如何接入 API、如何写 ViewModel 等)
3) 关键策略:先“打地基”,再让 AI 放量
不是一上来就让 Codex“从 iOS 代码直接生成整个 Android App”,因为那样会出现“技术上可行但产品体验不理想、一次性代码不可靠”的风险。
更有效的路径是:
- 人先完成地基与代表性端到端样例:架构、模块化、依赖注入、导航、认证、基础网络流程等,并把“我们认为正确的做法”沉淀成项目级模式。
- 把 Codex 指向这些代表性样例:让它“照着正确范式复制扩展”。提到:与其说“做一个设置页”,不如说“用你刚看到的另一个页面相同的架构和模式来实现设置页”。
- 结果:在一个项目里,Codex 贡献了约 85% 代码,而前期地基避免了后续昂贵返工。
4) 标准开发流程:先规划,再分步实现(像写微型设计文档)
把工作流从“直接让 AI 开干”改成“先让 AI 理解系统并输出计划”:
- 第一步:让 Codex 阅读相关文件并总结数据流与分层(例如 API → repository → view model → UI),人纠正它的误解。
- 第二步:共同产出一个实施计划(像微型 design doc):要改哪些文件、引入哪些新状态、逻辑流怎么走。
- 第三步:再让 Codex 按计划分步实现。任务很长、上下文快超窗时,让它把计划写入文件,跨会话复用方向。
认为“多花这一点规划时间非常值得”,因为:
- 能让 Codex 更长时间“无人监督”运行
- 审核更轻松:对照计划查实现,不用盲看 diff
- 出问题先 debug 计划,再 debug 代码
5) 分布式工程:并行开多个 Codex 会话,像在带队
高峰期会同时跑多个会话:一个回放/复现、一个搜索、一个处理错误、一个写测试或重构。每个会话定期汇报进度,人要像 Tech Lead(技术负责人 / 技术组长)一样持续给反馈与审核。
但也提醒:并行并不线性提速,因为“协调成本”会上升——瓶颈会从“写代码”转移到“做决策、反馈、整合变更”。
6) 质量闭环:用测试与 CI 日志驱动 AI 修复
文章里明确提到 Codex 的强项之一是:
- 喜欢补单元测试、提高覆盖面(未必每个都很深,但能防回归)
- CI 失败时,把日志贴给 Codex,让它提出修复建议
- 甚至在合并前帮你做 code review、提前发现 bug
所以可操作的工程化做法是:
- 每个 PR 让 AI 自己写“测试清单 + 风险点 + 回滚点”
- CI 红了就把日志喂给 AI:“解释失败原因→给最小修复→补回归测试”
- 人类重点审:边界条件、架构一致性、可维护性、性能/内存、体验细节
7) 跨平台复用:用“转换”而不是“共享抽象”
把 Codex 当作跨平台“超能力”:在同一环境里放 iOS/后端/Android 代码仓库,让 Codex 读 Swift 实现并生成语义等价的 Kotlin 代码;强调“逻辑可移植”,而“具体示例比纯自然语言描述更有效”。
一个很实用的小技巧:在 ~/.codex/AGENTS.md 里记录本地各仓库路径与说明,方便 Codex 浏览与对照实现。
Agentic软件工程方法论和项目管理思考:
AI 系统性开发的关键在于“人类如何为 AI 建立工程秩序”。在现阶段,AI 是一个高速执行引擎,无法全权担任系统设计者,个人觉得很大一部分原因在于人和 AI 之间的信息差,信息差的产生是人脑中的想法无法直接 copy 给 AI,这和你的想法无法完全 copy 给另一个人一样,或者是人自己也没有把设计想的很清楚。当 AI 从人获取的信息存在缺陷时,它就有了自由发挥的空间,但这一部分就是相对不可控的,比如它会放大已有的架构与规范。为了弥补这个缺陷,就需要减小信息差,做好规范设计,因此,软件工程的方法论正在发生转移:代码实现不再是核心瓶颈,真正稀缺的是清晰的系统边界、稳定的架构决策和可执行的工程规范。像 AGENTS.md 这样的实践,本质上是在把隐性的工程经验转化为 AI 可反复遵循的规则,这是 AI 时代非常重要的一类工程资产。
从方法论上看,“先规划、再实现”在 AI 参与的开发中变得更加重要。规划不再只是文档或沟通工具,而是对 AI 行为的约束机制。只要方向、结构和约束足够明确,AI 就可以在较少人工干预的情况下持续产出,这反而提升了整体开发效率。代码评审的重心也随之上移,从逐行检查实现细节,转向验证实现是否符合原始设计意图和架构假设。
在项目管理层面,AI 带来的并不是线性提速,而是瓶颈的转移。执行成本被极大压缩后,项目成败更多取决于决策质量和方向稳定性。管理者或技术负责人需要做的,不是盯进度和产出,而是提供高质量输入、快速纠偏,并防止局部最优侵蚀整体结构。总体而言,AI 时代的软件工程更强调“人类设计秩序 + AI 扩散秩序”,这正在成为一种新的工程与项目管理常态。
在 AI 深度参与开发之后,项目管理的重心发生了明显变化。传统项目管理中,核心挑战往往是执行效率和人力分配,而在 AI 编程环境下,执行本身不再稀缺,真正稀缺的是高质量决策与稳定方向。AI 可以极快地产出实现,但如果输入目标模糊、约束不清,项目只会更快地偏离正确方向,因此项目管理首先变成了对“问题定义质量”的管理。
AI 编程下的项目管理更像是在管理一个高度自动化的执行系统。管理者需要持续提供清晰的上下文、明确的边界和可验证的阶段性目标,而不是频繁介入具体实现。任务拆解的重要性显著提升,每个任务都应具备清晰的输入、预期输出和验收标准,否则 AI 的高并发产出会迅速放大不一致性和技术债。
与此同时,并行能力不再等同于整体提速。多 AI 会话或多任务并行,会将项目瓶颈从“做不完”转移到“整合与协调”。项目管理的核心能力,逐渐从排期与跟进,转向架构一致性维护、跨任务冲突消解以及结果整合判断。换句话说,项目能否成功,不再取决于“推进得多快”,而取决于“是否始终在同一条正确的轨道上”。
在这种模式下,好的项目管理不再是 AI-first,而是 AI-governed:让 AI 承担执行和扩展,让人类专注于方向、边界与最终判断。这种以“约束和验收”为中心的管理方式,正在成为 AI 编程时代更可持续的项目管理范式。
文章中还缺少项目管理中对「人」的管理:
在 AI 编程成为常态后,项目管理并没有弱化对人的管理,反而改变了“管理什么”。人的价值不再主要体现在代码产出量,而体现在判断、约束和整合能力上。因此,管理者首先需要重新定义团队成员的角色:不是“写代码的人”,而是“为 AI 提供高质量输入、并对输出负责的人”。如果仍然用传统“代码量 / 任务数”来衡量个人贡献,项目很容易失控。
在这种环境下,最重要的管理目标之一,是让每个人对系统边界有清晰共识。AI 极其擅长在局部完成任务,但非常不擅长维护全局一致性,这就要求每个参与者都清楚自己负责的模块边界、依赖方向以及不能触碰的设计约束。项目管理需要花更多精力在“对齐认知”上,而不是“分配工作量”。
其次,AI 编程下更需要强约束的工作流程。例如,要求成员在让 AI 实现之前,必须先给出明确的任务描述、实现计划或接口草图;在提交结果时,必须说明 AI 做了什么、哪些地方经过人工确认、哪些是假设成立的。这种流程并不是降低效率,而是防止“AI 快速产出 + 人类失去控制”的失衡状态。
同时,项目管理要引导团队成员从“实现者思维”转向“审核者与设计者思维”。让人习惯于:
- 审核 AI 输出是否符合设计意图
- 识别潜在技术债和隐含假设
- 主动拒绝“看起来能跑但不干净”的实现
这对个人能力结构提出了更高要求,也意味着管理者需要在评估与反馈中,奖励正确判断,而不是盲目速度。
最后,在 AI 编程条件下,管理人的核心,其实是管理节奏与注意力。AI 可以持续输出,但人类的决策和判断能力是有限的。如果让成员同时驱动过多 AI 会话或任务,很容易导致整体方向碎片化。合理的做法,是控制并行度,让每个人在任何时刻只对少量清晰目标负责,从而保持系统层面的稳定性。
总体来看,AI 编程并没有减少“人”的重要性,而是让管理的重点从“监督执行”转向了引导认知、约束行为和保障系统一致性。在这种模式下,项目能否成功,取决于管理者是否能让人和 AI 各司其职,而不是互相掩盖问题。
更多推荐


所有评论(0)