3130 字
约 10 分钟
14
S16-A14 · 团队产能的核算:为什么加了人没变快
2024-12-31
2026-11-09

六个人扩到十个人,季度交付量没变。第一反应是"新人不行"或"老人不配合",这两个解释都不成立也不解决问题。真正发生的事更朴素:产能不是人数的线性函数,加人改变的是三个乘数里的一个,而另外两个通常会同时变差。

核算产能的目的不是给团队打分,是判断"再招两个人有没有用"、"该先修哪一段"。


1. 产能方程:三个乘数

把产能写成三项相乘,比写成"人力"一个数有用得多。

// 产能的粗算式:三项都是乘数,任一项接近零,总量就接近零
产能 ≈ 有效工时 × 并行度 ÷ (1 + 等待系数)

有效工时    // 一天里真正在推进交付的时间,不含会议、答疑、救火
并行度      // 同时在推进且互不阻塞的独立任务数,有上限
等待系数    // 等待时间 / 有效工时,随协作人数与依赖数上升
组成 典型量级 加人后怎么变 谁能让它变好
有效工时 一天 4–6 小时 线性增加 减少打断、减少救火
并行度 3–5 条独立流 受任务可切分度限制 架构解耦、任务拆分
等待时间 常占总日历时间一半以上 随人数上升 缩短评审链、减少跨团队依赖

第三行是要点:多数团队盯着第一行做加法,而交付量被第三行卡住。


2. 等待时间:五个来源

等待不是"摸鱼",是任务在等人。它不产生交付,也不留在任何人的工时表里,所以最容易被低估。

来源 典型形态 谁在等 缩短手段
评审 提交后等评审人 作者、下游 限定评审人与时限,拆小改动
环境 等构建、等测试环境、等数据 开发者 环境自服务,失败可自查
依赖方 等别的团队给接口、给数据 整条链 契约先行,桩先行
决策 等方案被拍板 执行者 明确决策人与截止时间
审批 等合规、等预算、等权限 全员 提前量单独排,别混进技术任务

五个来源中,前三个是工程问题,后两个是组织问题。只修工程侧,等待系数降不下来,因为后两个经常是链条里最长的一段。


3. 人月不是产出

投入和产出要用不同单位记:投入是人·天,产出是"完成并验证的交付单元"。混用会得出"人月越多产出越多"的错觉。

记法 单位 问题
工时统计 人·小时 只记投入,不记产出,可用于解释忙碌
故事点/任务数 个 口径随人变,跨季度不可比
完成并验证的条目 个 需要"完成"的定义,但可比
流动时间 天/条 反映系统而非个人,最抗争论

单位选错会带来一个具体后果:加班能被记录,等待不能被记录。于是所有复盘都在讨论"人不够",而不是"卡在哪"。

口径还必须跨季度稳定。改一次定义(比如把"完成"从合并改成上线),历史曲线立刻断掉,而断掉的曲线通常被解释成"产能提升了"。定义写进配置文件、带版本,比写在文档里靠人记可靠。


4. 并行度的三个前提

想提高并行度,需要同时满足三个条件,缺一个就会出现"人多活少"。

前提 不满足时的表现 破坏它的常见做法
任务可切分 十个人做三件事,七个人围观 按人事分配,不按接口分
依赖可解耦 谁的改动都要等别人合 全局共享分支、共享配置
评审能力跟得上 提交排队,评审人成瓶颈 只有两三个人有合并权

第三条常被漏算:加人后提交量上升,评审队列变长,等待时间上升,净产出可能为零。并行度的上限由最窄的那道门决定,不由人数决定。


5. 加人的三项成本

新增一人不是一个"+",而是三项同时发生。

成本 形态 持续期 由谁承担
培训期 新人产出低于自身成本 一到三个月 团队整体
沟通成本 协作路径随人数平方增长 永久 全员
分心 老人答疑、带看代码 前两个月最重 现有成员

沟通路径的增长可以算出来,这也是布鲁克斯定律的工程版本:

// 沟通路径数:n 个人两两之间都可能有依赖
n = 6  → 6×5/2  = 15 条
n = 10 → 10×9/2 = 45 条      // 人数 +67%,路径 +200%

路径数不等于实际沟通量,但它是上限,也是"加人变慢"最直接的解释:你增加了 67% 的产能,同时把需要协调的关系翻了三倍。

把它写成收支表,招人这件事就有了判据,而不是靠感觉:

// 新增加一人的粗略收支:右侧为负项,按项目实测替换占位值
+  有效工时      +1.0 人   × [0.2, 0.6] 系数   // 培训期系数,按个月抬升
-  沟通成本      +2(n-1) 条路径 / 总路径数     // 人越多,单位路径成本越高
-  现有成员分心  -[0.1, 0.3] 人                // 前两个月最重
=  净收益        大于零才招,否则先修瓶颈

左侧系数是区间而不是点值,因为同一团队在不同阶段差别很大:新人第一个月通常是净负,第三个月才转正。用点值讨论会得出精确但错误的结论。


6. 瓶颈只有一个

任何时刻,限制交付的环节只有一个(其余都是被它拖着的)。优化非瓶颈,产出不变,只是把库存堆在瓶颈前面。

做法 瓶颈在评审 瓶颈在依赖方 瓶颈在决策
加开发 提交更多,队列更长 更早开始等 更多方案等拍板
加测试 无用 无用 无用
缩短评审链 有效 无效 无效
契约先行 无效 有效 部分有效

识别瓶颈的办法不是问人,而是看队列:队列最长的那一段就是瓶颈,而不是最忙的那一段。

// 从工单/PR 时间戳粗算各段等待,找出最长段而非常最忙段
$ jq -r '.[] | [.stage, (.wait_hours)] | @tsv' events.json \
  | awk '{s[$1]+=$2; c[$1]++} END{for(k in s) printf "%s\t%.1fh\t%d条\n", k, s[k]/c[k], c[k]}'

7. 在制品过多会掩盖瓶颈

"看起来很忙"与产能在多数情况下无关。忙的成因通常是在制品(WIP)过多:每个人手上三件事,每件都推进一点。

WIP 状态 表现 对瓶颈的影响
每人 1–2 件 偶有空闲,流转快 瓶颈暴露,可观测
每人 3–4 件 人人有活干 瓶颈被排队掩盖,周期变长
每人 5 件以上 到处在切换 瓶颈不可见,交付抖动大

这也是"加人没变快"的另一种解释:新人加入时任务没减少,WIP 直接翻倍,于是等待时间上升,把新增工时的收益吃掉。


8. 产能与质量:赶工是延后付款

压产能最直接的手段是压缩验证环节。它当期有效,代价以缺陷形式在后期返还,返还时的单价更高——修复成本随发现时间上升,这一点在 quality-gate-economics.md 里有单独的账。

压缩项 当期收益 延迟返还
免评审 交付快一两天 缺陷与不一致在集成期出现
免回归 周期短 线上问题与回滚
需求不澄清就开工 看起来启动快 返工,且返工不进原估算

核算产能时若不同时看缺陷与返工,得到的数字会被系统性高估。反过来也成立:一个季度交付多、返工少,才能算产能真的提高;交付多但线上事故翻倍,那只是把工作推到了下个季度。


9. 度量:测系统,不测人

工时统计测的是投入,且会立刻被游戏化(填满八小时)。应测的是流动。

指标 定义 判据 反噬
流动时间 从开始到完成的中位数 下降即系统变好 靠切小任务美化
在制品数 同时在推进的条目 有上限即可 上限外条目被藏起来
瓶颈段利用率 瓶颈段忙碌占比 接近满负荷才正常 逼非瓶颈也满负荷
等待占比 等待 / 总日历时间 高于一半说明协作贵 靠改口径下降

这套指标的边界要写清:它们描述的是团队这个系统,不是个人绩效。一旦用于个人考核,数据会在两周内失真。

// metrics.yaml:口径写成配置,避免每季度换一次定义
flow:
  start_event: pr_opened
  done_event: deployed_to_prod
  percentile: [50, 85]
wip:
  limit_per_person: 2
  measure: in_progress_at_day_end
bottleneck:
  detect: longest_queue            // 看最长队列,不看最忙的人
  review_window_hours: 24

10. 症状对照

症状 更可能的根因 先动哪
加两人交付不变 瓶颈在评审或依赖方 缩短评审窗,先不招人
人人加班但流转慢 WIP 过多 限在制品,砍并行任务
交付量波动极大 频繁切换与救火 保护有效工时
新人三个月仍不独立 任务不可切分 拆接口,给独立小任务
评审排队越来越长 合并权集中 扩评审人,缩小改动粒度

11. 边界的边界

场景 为何精细核算不划算 该做什么
团队小于五人 沟通路径少,瓶颈随人流动 每周看一眼队列就够
任务完全独立 并行度已接近人数 不必管等待系数
周期极短的一次性项目 校准成本高于预测收益 给时间盒,不做产能模型
组织处于强约束期 产能不由团队决定 只核算自己能改的那一项

还有一条:产能核算的成本本身要计入。每次为算清楚而开的会、填的表,如果超过它能带来的调整收益,结论就是"别算了,去看最长队列"。


12. 自测

  1. 产能方程的三个乘数里,加人直接影响哪一个,通常恶化哪一个?
  2. 五个等待来源中,哪些是纯组织问题,为什么修工程侧降不下来?
  3. 六人扩到十人,沟通路径增加多少?这解释了什么?
  4. 怎么判断瓶颈在哪?为什么不能问"谁最忙"?
  5. WIP 过多如何掩盖瓶颈,加新人时它为什么会翻倍?
  6. 流动时间指标一旦用于个人考核,会发生什么?
S16-A14 · 团队产能的核算:为什么加了人没变快
https://www.clxhxhhr.top/posts/6301/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。