流水账【23-26】- 02 - 工程管理&项目管理

Link:

免责申明,以下几乎 100% 来源于 GPT Pro,我只是起了个头,提出了一些问题和自己的思考。但是 GPT 的内容确实也有给自己不少启发。

从文风上,还是能看出来标准的八股风格,宛如高中生的作文。不过内容上,感觉让人写,不考虑文风,内容未必就一定表达比它更好。

当然 GPT 也有它自己的免责条款。。。


不要把项目管理当成唯一的管理

最近在想一个问题:很多技术团队里,大家一说到“管理”,其实默认说的是“项目管理”。

这当然没错。项目管理很重要。

但是如果把项目管理当成唯一的管理,就会有一个问题:很多事情表面上是项目问题,本质上却不是项目问题。

如果判断错了,就会出现一种很常见的现象:

明明系统能力不够,却不断增加项目管理动作。

于是会议更多了,排期更细了,周报更频繁了,复盘更多了,但团队并没有变强。项目还是继续延期,质量还是继续波动,交付还是继续靠人肉救火。

免责条款

  1. 这里只讨论技术研发团队里的管理,不讨论更宽泛的组织管理。
  2. 我也不讨论厚黑学、向上管理、汇报艺术这些东西。
  3. 我不是管理学专家,只是从工程研发的角度做一点经验总结。
  4. 管理方法离开业务阶段、团队能力、组织结构,都会失效。
  5. 所以下面的每句话前面理论上都可以加一句:“我觉得”。

先下结论

对我个人来说,当前最需要区分的是两类管理:

项目管理:让一个确定目标,在确定约束下完成交付。
工程管理:让一个技术组织,持续、稳定、低成本地交付复杂系统。

项目管理关注“这一次”。工程管理关注“以后每一次”。

项目管理解决的是交付秩序。工程管理解决的是系统能力。

项目管理问的是:

这个项目怎么按时完成?

工程管理问的是:

为什么每次类似项目都这么难?下一次能不能更容易?

这两个问题都重要,但是它们不是一个问题。


A. 项目管理不是管理的全部

项目管理的价值很明确。一个项目如果没有目标、没有范围、没有排期、没有风险管理、没有关键路径、没有验收标准,基本一定会失控。

尤其在研发团队里,很多事情不是做不出来,而是:

  1. 目标一直变;
  2. 范围不断扩大;
  3. 上下游依赖不清楚;
  4. 关键风险没有提前暴露;
  5. 验收标准到最后才明确;
  6. 每个人都以为别人知道;
  7. 每个人都在等别人先动。

这些问题都需要项目管理。

所以不能因为自己是工程师,就看不起项目管理。这是一种很常见的技术幼稚病。

好的项目管理不是催进度,不是画甘特图,也不是开会写纪要。好的项目管理本质上是在有限资源下持续做取舍。

这些都不是简单问题。

但是,项目管理再好,也只能保证一个项目更有秩序地推进。它不能自动解决工程体系差的问题。

如果底层工程能力不够,项目管理只会让问题暴露得更清楚,但不一定能让问题消失。


B. 很多“项目问题”,其实是工程问题

技术团队里有很多问题,表面看像项目管理问题。

比如项目延期。

常见反应是:

  1. 排期是不是没做好?
  2. 进度是不是没盯紧?
  3. 风险是不是没同步?
  4. 人是不是不够努力?
  5. 负责人是不是不够强?

这些问题当然可以问。

但还应该继续问:

  1. 为什么每次训练环境都要重新调?
  2. 为什么每次数据版本都要人工确认?
  3. 为什么每次评测结果都要人工解释?
  4. 为什么每次模型上线都像重新考古?
  5. 为什么同类问题在不同项目里反复出现?
  6. 为什么新人三个月还摸不清系统?
  7. 为什么所有关键流程都依赖几个老人?

这些就不是项目管理问题了。

这是工程管理问题。

如果一个团队每次做项目都很痛苦,不一定是项目经理不行,也不一定是工程师不努力。
更可能是工程系统本身没有能力承载复杂度。

这个时候继续加强项目管理,效果会很有限。

就像一个模型已经明显欠拟合,你继续调 learning rate,当然也可能有一点改善,但大概率不是主要矛盾。


C. 项目管理解决交付,工程管理解决复利

我觉得这是两者最核心的区别。

项目管理的目标是把这件事交付掉。
工程管理的目标是让下一件类似的事情更容易交付。

所以项目管理天然关注当前项目:

  1. 当前目标;
  2. 当前范围;
  3. 当前资源;
  4. 当前时间;
  5. 当前风险;
  6. 当前验收。

工程管理关注的是长期能力:

  1. 架构是否合理;
  2. 工具链是否完整;
  3. 数据是否可追溯;
  4. 评测是否可信;
  5. 自动化是否足够;
  6. 技术债是否可控;
  7. 经验是否能沉淀;
  8. 新人是否能成长;
  9. 反馈闭环是否足够短;
  10. 团队是否越做越快。

一个项目做完,只是交付了结果,不代表团队变强了。

如果项目结束后:

  1. 没有新增可复用工具;
  2. 没有沉淀工程经验;
  3. 没有改善流程;
  4. 没有降低下一次成本;
  5. 没有培养出能独立负责模块的人;

那这个项目从工程角度看,价值是不完整的。

它可能解决了短期业务问题。但它没有形成工程复利。

很多团队一年到头很忙,但年底回头看,系统能力没有明显提升。这就是因为项目做了很多,工程管理做得太少。


D. 管理不是增加控制,而是降低系统成本

很多人理解管理,会下意识想到控制。

这些东西不是不能有,但是如果它们没有降低系统成本,反而只是增加管理摩擦,那就有问题。

我觉得工程管理最重要的目标不是“控制人”,而是“降低系统成本”。

具体来说,是降低几类成本。

1. 理解成本

如果一个系统只有少数几个人能理解,那不是技术壁垒,是组织风险。

2. 协作成本

协作成本高的团队,会表现得像人不够。但本质上可能不是人少,而是系统摩擦太大。

3. 验证成本

如果验证成本很高,团队就会变得保守、迟缓、依赖经验和玄学。

4. 交付成本

如果每次交付都像手工作坊,那项目管理再强也会很累。

5. 决策成本

如果缺少事实和数据,决策就会依赖职位、声音大小和个人直觉。这也许短期有效,但长期不稳定。


E. 一个常见错误:用项目节奏掩盖工程债务

工程债务最麻烦的地方是,它通常不会立刻爆炸。

单看每一个决策,都是合理的。

但放在一起,就会变成系统性债务。

技术债不是道德问题,是财务问题。欠债可以,很多时候也必须欠。但不记账、不算利息、不安排还债,就会出问题。

项目管理在这里有一个天然局限:它更容易看到当前项目的交付压力,不容易看到长期工程债务的复利。

所以如果团队只用项目视角看问题,就会不断做出局部合理、全局变差的决策。

最后就会发现,所有项目都变成“特殊项目”。

这就是工程管理缺位。


F. 怎么判断一个问题该用哪种管理方法

可以用一个简单标准。

如果问题主要是:

  1. 目标不清;
  2. 范围失控;
  3. 排期混乱;
  4. 风险没有同步;
  5. 资源冲突;
  6. 依赖没有管理;
  7. 验收标准不一致;

那大概率是项目管理问题。

如果问题主要是:

  1. 同类问题反复出现;
  2. 每次交付都靠人肉;
  3. 新人上手很慢;
  4. 系统改一点炸一片;
  5. 评测结果不可复现;
  6. 数据、代码、模型版本对不上;
  7. 大量时间花在解释历史问题;
  8. 项目做完没有复用资产;
  9. 团队一直忙但能力没有增长;
  10. 需求越做越慢,而不是越做越快;

那大概率是工程管理问题。

最怕的是第二类问题,却用第一类方法解决。

结果就是:

  1. 更多会议;
  2. 更多排期;
  3. 更多催促;
  4. 更多复盘;
  5. 更多人肉检查。

但系统本身没变。


G. 对我来说,工程管理应该做什么

如果只保留最重要的几件事,我觉得工程管理至少要做这些。

1. 建立事实系统

不要只靠感觉判断团队状态。

要知道:

  1. 时间花在哪里;
  2. 问题卡在哪里;
  3. 质量坏在哪里;
  4. 债务堆在哪里;
  5. 成本高在哪里;
  6. 复用资产在哪里;
  7. 自动化缺在哪里。

没有事实系统,管理就是拍脑袋。

2. 降低重复劳动

凡是重复发生三次以上的人工操作,都应该考虑工具化。

不是所有东西都值得自动化,但高频、低创造性、容易出错、影响交付的事情,应该尽快被系统吸收。工程团队最不应该浪费的是注意力。人的注意力应该用来判断、设计、创造,而不是反复跑脚本、查路径、对版本、补表格。

3. 建立反馈闭环

工程系统最怕反馈慢。

反馈慢,组织就会变钝。

好的工程管理应该不断缩短反馈路径,让团队更快知道什么是对的,什么是错的。

4. 控制技术债

技术债不能完全避免,但必须被看见。

要区分:

  1. 可以接受的债;
  2. 需要监控的债;
  3. 已经影响效率的债;
  4. 已经威胁交付的债;
  5. 必须立刻处理的债。

如果债务没有分类,就会变成情绪问题。有人觉得必须重构,有人觉得还能忍,最后谁也说服不了谁。

5. 让项目沉淀成能力

每个项目结束后都应该问:

  1. 有没有沉淀工具?
  2. 有没有沉淀流程?
  3. 有没有沉淀经验?
  4. 有没有培养新人?
  5. 有没有降低下一次类似项目的成本?

如果答案长期是否定的,那团队只是在消耗自己。


H. AI 时代的补充

AI Agent 出现之后,这个问题会更明显。

如果一个团队本来就有清晰的工程体系,AI 会放大它的效率。
如果一个团队本来就混乱,AI 可能只是更快地产生更多混乱。

因为 AI 擅长执行局部任务,但它不能自动替你建立工程秩序。

所以 AI 时代的工程管理,不只是“让 AI 干活”。

更重要的是重新设计:

  1. 哪些流程可以自动触发;
  2. 哪些检查可以前置;
  3. 哪些信息可以自动汇总;
  4. 哪些风险可以自动暴露;
  5. 哪些重复劳动应该被消灭;
  6. 哪些决策仍然必须由人负责。

未来技术团队的差距,可能不只是人和人的差距,而是:

人 + 工具 + 模型 + 流程 组成的系统能力差距。

这还是工程管理问题。


结语

管理不是只有项目管理。

项目管理让事情交付。工程管理让团队变强。

项目管理解决的是这一次怎么完成。工程管理解决的是下一次能不能更快、更稳、更低成本地完成。

如果一个团队只有项目管理,没有工程管理,就会变成一个不断交付、不断消耗、不断救火的系统。

短期看很忙。
中期看很累。
长期看没有复利。

一个好的技术组织,应该通过项目交付业务价值,同时通过工程管理积累系统能力。

项目是载体。
工程能力才是复利。