关于AI场景下程序员的核心能力和职业方向的对话

用户:在过去,软件工程把产品经理和程序员分隔来了,让产品经理去专注处理需求、给出需求文档,程序员负责把需求落实到代码层面,完成抽象需求进入程序设计里,完成需求落实到程序设计的统一概念里。程序员的这部分工作应该怎么描述更准确。

我:这个问题涉及软件工程中的角色分工和术语定义,我来帮你梳理一下。

程序员这部分工作的准确描述

你描述的是程序员将抽象需求转化为具体技术实现的过程,在软件工程中有几个更精确的术语:

1. 软件设计 (Software Design)

最通用的说法,包含:

  • 概要设计/架构设计 (Architectural Design):确定系统整体结构、模块划分、技术选型
  • 详细设计 (Detailed Design):具体模块的内部逻辑、数据结构、接口定义

2. 技术实现 (Technical Implementation / Implementation)

强调将需求文档转化为可运行代码的完整过程,包括:

  • 理解并分析需求(Requirements Analysis)
  • 设计技术方案(Solution Design)
  • 编码实现(Coding)
  • 单元测试(Unit Testing)

3. 需求工程中的”需求规格说明”→”设计规格说明”转换

在需求工程理论中,这属于:

  • 从问题域 (Problem Domain) 到解域 (Solution Domain) 的映射
  • 产品经理输出 SRS (Software Requirements Specification,软件需求规格说明书)
  • 程序员输出 SDS (Software Design Specification,软件设计规格说明书) 并编码实现

4. 更具体的术语

术语 侧重点
详细设计 模块内部的算法、数据结构、接口
领域建模 (Domain Modeling) 将业务概念映射为代码中的对象/模型
系统架构 (System Architecture) 高层技术结构、组件关系
实现 (Implementation) 编码和构建的具体工作

一句话总结

程序员的核心工作是 “将需求规格转化为设计规格,并通过编码实现为可运行的软件系统” —— 这个过程统称为 软件设计技术实现,本质是完成从问题空间解空间的映射。

如果你想强调这个转换过程的桥梁作用,也可以说这是 “需求的技术解构与重构” —— 把业务语言翻译成技术语言。


用户:那么问题来了,不懂技术的产品经理如果想要通过Agent和vibe coding来越过程序员去写代码实现需求。他所欠缺的能力是什么?

我:这是一个非常有洞察力的问题。让我拆解一下:


核心结论:他欠缺的是**”解域建模能力”**

产品经理通过自然语言描述需求(问题域),而程序员的核心价值在于将问题域映射到解域(技术实现空间)。Agent和vibe coding只是加速了编码过程,但并没有消除这个映射鸿沟。


具体欠缺的能力

1. 边界意识(什么能做,什么不能做)

产品经理的盲区 后果
不知道技术约束(性能、并发、安全、成本) Agent生成代码跑通demo,但无法支撑真实业务负载
不理解系统耦合性 改一个需求,Agent改了10个文件,引入隐性bug
缺乏故障域划分思维 无法判断”这个功能应该放在服务端还是客户端”

关键区别:程序员写代码前会先问”边界在哪里”,产品经理往往只关注”功能是什么”。


2. 分解与组合的结构化思维

产品经理的输入:”用户下单后要发短信通知” 程序员的转换: ├── 同步调用 or 异步消息队列? ├── 短信服务挂掉怎么办?(熔断、降级、重试) ├── 模板变量如何校验?(防止注入) ├── 频率限制?(防刷) └── 成本:按条计费还是套餐?

Agent可以生成”发送短信”的代码,但无法替你做这些决策——因为它们依赖于对系统整体的理解。


3. 隐性需求的显性化能力

产品经理写的PRD通常是正向路径

“用户点击购买,扣款成功,显示订单”

程序员会补全逆向路径和异常路径

  • 余额不足?
  • 网络超时?
  • 重复点击?
  • 支付回调延迟?
  • 并发扣款冲突?

Agent只会实现你明确描述的东西,不会追问”那如果…呢?”


4. 调试与诊断的元能力

场景 产品经理 程序员
Agent生成代码报错 “这句错了,帮我修一下”(循环试错) 读错误栈、定位根因、理解依赖关系
功能”好像对了”但数据不对 难以察觉 追踪数据流、验证状态一致性
性能慢 “优化一下” profiling、定位瓶颈、权衡方案

vibe coding的最大陷阱:它让”写出代码”变得容易,但让”理解为什么错”变得更难——因为你没有中间过程的mental model。


5. 技术债务的嗅觉

程序员能感知:

  • 这段硬编码现在方便,下个月会埋雷
  • 这个表结构设计满足当前需求,但扩展时会锁表
  • 这个第三方库社区活跃度低,长期维护风险高

产品经理+Agent的组合倾向于最大化短期交付速度,而低估长期维护成本。


一个类比

产品经理用Agent写代码,就像不懂建筑的人用AI生成施工图纸

你可以描述”我想要一个采光好的三层别墅”,AI能出图。

但你不知道:地基能不能承重?排水坡度够不够?当地抗震规范是什么?

房子能盖起来,但住进去后漏水、裂缝、结构隐患——你甚至不知道问题出在哪。


那么,什么情况下可以”越过”程序员?

场景 可行性 原因
原型验证/MVP ✅ 高 边界清晰,失败成本低
内部工具/自动化脚本 ✅ 高 用户少,容错率高
标准化SaaS配置(低代码) ✅ 高 解域已被平台封装
核心业务系统 ❌ 低 边界复杂,故障影响大
高并发/金融/安全敏感场景 ❌ 极低 隐性约束极多

给产品经理的实用建议

如果想用Agent提效,应该补齐而非绕过

  1. 学”计算思维”而非语法:理解状态、并发、抽象、分层
  2. 强制追问边界:每个需求问自己”如果失败会怎样?”
  3. 建立反馈循环:让有工程经验的人review你的Agent产出(不是看代码,是看设计决策)
  4. 从封闭域开始:选择技术约束明确的场景(如前端页面、固定模板的后端逻辑)

最终结论:Agent消除的是编码的体力成本,不是设计的认知成本。产品经理缺的从来不是”写代码的能力”,而是**”在约束条件下构造可行解”的能力**——这正是软件工程教育的核心,也是目前AI最难以替代的部分。


用户:我认为软件工程的工程化管理等的细节,未来一定会被程序员落实稳定。AI会在各种约束下写出更合规的代码,reviewcode会自动化,测试会自动化等等。那么,这之后程序员的工作又会变成什么呢

我:这是一个非常前瞻性的思考。顺着你的逻辑推演,如果工程化、约束合规、review、测试都被AI自动化,程序员的工作会发生本质性迁移——从”构建系统”转向”定义系统”。


未来程序员的核心工作:解域架构师(Solution Space Architect)

1. 约束工程(Constraint Engineering)

不再是写代码,而是设计和维护AI生成代码的约束边界

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 未来的"编程"可能长这样
system_constraints:
performance:
p99_latency: < 200ms
throughput: > 10k QPS
reliability:
availability: 99.99%
failover: automatic
security:
data_classification: PII
encryption: AES-256-GCM
cost:
infra_budget_monthly: $50k
optimization_target: spot_instances_allowed

business_rules:
- "订单金额 > 10000 必须人工审核"
- "用户敏感操作需二次验证"
- "退款必须在支付后72小时内发起"

程序员的工作是确保这些约束被AI正确理解、执行、且不冲突。

2. 意图精化(Intent Refinement)

产品经理说”用户可以快速下单”,程序员需要将其转化为AI可执行的精化意图:

模糊意图 精化后的结构化意图
“快速下单” 端到端流程 < 3步,每步加载 < 1s,支持预填充地址
“高可用” 定义故障场景(单点故障、依赖降级、脑裂),指定RTO/RPO
“智能推荐” 明确冷启动策略、多样性约束、业务过滤规则

关键能力:识别模糊性、消除歧义、补全隐性假设。

3. 系统元设计(Meta-Design)

不再设计具体模块,而是设计系统如何演化:

扩展契约:新功能如何无损接入现有约束体系?

反脆弱结构:系统如何在部分组件失效时自愈?

熵增管理:长期迭代中如何防止约束腐蚀(constraint drift)?
类比:从”画建筑图纸”变成”制定建筑规范 + 审核AI生成的图纸是否符合规范”。

异常与边缘治理(Edge Case Governance)

AI擅长主流路径,程序员专注长尾风险
AI生成代码覆盖率:95% 常见场景 ✅
剩余 5% 边缘场景:

  • 闰年2月29日的定时任务
  • 跨时区夏令时切换的日志顺序
  • 分布式事务在网络分区下的补偿
  • 法规变更导致的合规逻辑冲突

程序员工作:识别、建模、验证这些边缘,
并确保AI理解”为什么这种边界情况重要”。

5. 跨域翻译与对齐(Cross-Domain Alignment)

成为问题域与解域之间的终极翻译者:

业务方:”我们要做跨境电商”

程序员拆解:

  • 支付域:多币种、汇率波动、风控规则
  • 物流域:清关、轨迹追踪、异常处理
  • 合规域:GDPR、数据本地化、税务
  • 技术域:全球部署、数据同步、最终一致性

转化为AI可执行的约束包 + 验证策略

核心价值:看到跨域的隐性依赖和冲突,这是垂直AI难以具备的。