去年冬天,一家做智能硬件的公司找我复盘一个让他们很"没面子"的问题:年初按 220 人 × 12 个月排的研发计划,到 9 月底实际交付量只完成了 61%,但所有项目周报上的"人力投入"都显示接近 100%。老板的疑问很直接:人没少,钱没少花,为什么活只干出来六成?
我花了三周时间,把他们 9 个月的项目、缺陷、需求、工时四张表拉到一起重算,最后得出一个非常朴素的答案:他们全年排计划用的"可用工时",是把人数乘以工作日再乘以 8,而真实可用工时大约只有这个数字的 63%。这 37% 的缺口被 11 个并行项目平均分摊,谁都没觉得是自己出了问题。
这篇文章讲的就是怎么把"可用工时"从一个拍脑袋的乘数,变成一条可以被测量、被预测、被复盘的数据链路。我会给出四层漏斗模型、七个步骤的采集分析流程、三个不同规模团队的行动建议,以及我在 30 多个研发组织里反复看到的同一批坑。
一、核心结论:关于可用工时,先给六个判断
我不喜欢把结论藏在最后。先把最重要的判断摆出来,后面所有章节都是在对这六条做论证和落地拆解。如果你只想记住一页纸,看这一节就够了。
1. 可用工时是漏斗的产物,不是乘法的结果
"人数 × 天数 × 8"这个公式之所以流行,是因为它简单到不需要解释,而简单恰恰是它最大的问题,它假设一个人一旦被雇佣,其时间就可以 100% 转化为可交付的工作量。真实情况是,从制度工时到可交付工时,中间至少要经过四层扣减,每一层都有独立的口径和独立的损耗率。
我通常把这四层叫日历层、可用层、可承诺层、可交付层。一个 100 人的研发团队,日历层可能是 174 小时/人月,走到可交付层往往只剩 95-110 小时。如果你用 174 去排计划,那么从计划诞生的第一天起,就已经超配了 40% 以上。

2. 人力计划的精度取决于口径,而不是工具
很多团队一遇到人力算不准,第一反应是"换个系统"。我见过用 Excel 把可用工时算到误差 8% 以内的 60 人团队,也见过用了完整项目管理平台、但可用工时误差仍然超过 30% 的 800 人组织。差别不在工具能力,而在口径是否被写下来、被所有人用同一套解释。
口径这件事听起来很土,但它是唯一能跨团队对齐的东西。什么叫"投入"?是占用时间还是产出贡献?一个被拉去支持售前两周的工程师,算不算在项目里?这些问题的答案如果每团队自己理解,工具再好也只是把混乱数字化。
3. 数据分析的价值在预测偏差,不在事后统计
绝大多数团队的工时数据只用于两件事:算人力成本和填周报。这是巨大的浪费。可用工时数据最值钱的用法,是回答"下个月我们能承诺多少"这个问题,而不是"上个月我们花了多少"。
我的判断标准很粗暴:如果一份工时报表不能让你在两周后的一次排期会上改变决定,它就不值得每周花时间采集。这条标准帮我砍掉过客户 70% 的工时字段。
4. 可用工时管理的本质是承诺管理
计划之所以崩,很少是因为算错了,而是因为承诺多了。研发负责人真正的权力不是分配人,而是决定"这个月我们接几件事"。可用工时是承诺的上限,一旦超了,结果只有两种:延期,或者降低质量。
所以我在做可用工时建模时,第一件事不是采集数据,而是和业务方确认一句话:这个季度我们允许承诺的最大工时是多少,超了谁负责拒绝。没有这句话,模型做得再准也没用。
5. 规模一过 100 人,可用工时的误差会非线性放大
30 人团队靠负责人的记忆就能把可用工时刻画个七八成,因为每个人在干什么他都知道。但过了 100 人,跨团队借调、共享职能(测试、运维、设计)、外包驻场会同时出现,误差开始叠加而不是相加。
我统计过手头 30 余个样本组织的数据(非严格统计,仅作量级参考):50 人以下团队的平均可用率约 72%,50-200 人降到 65%,200-1000 人降到 58%,1000 人以上降到 54%。组织越大,可用率越低,但排计划时用的系数却往往还是 1.0。
6. 采集粒度越细,数据质量不一定越好
这是我最想纠正的一个直觉。很多管理者认为工时填报应该精确到 0.5 小时、按任务分解到最细颗粒度,结果换来的是敷衍填写和集体抵触。我的经验是:填报粒度和数据质量之间是一条倒 U 型曲线,最优点通常在"人 × 天 × 科目"这一档,而不是"人 × 小时 × 任务"。
二、背景与真实场景:为什么人力计划总是"年初准、年中崩"
要理解可用工时为什么难管,得先看清楚它在真实组织里是怎么被消耗掉的。这一节我用一个 120 人研发组织的三个月实录来说明,因为它的崩盘过程非常典型,几乎每个中大型团队都能在里面看到自己。
1. 一个 120 人研发组织的三个月实录
这家公司做企业级 SaaS,研发中心 120 人,分成 6 个特性团队加 1 个平台组,同时跑 9 个项目。年初他们按 120 × 21.75 × 8 = 20880 小时/月排的计划,听起来很充裕。
第 1 周排期会开得很顺利,因为数字够大,谁都能要到人。第 3 周开始出现第一个信号:平台组被三个特性团队同时拉去支持接口联调,原定的架构重构推迟。第 5 周,测试组成为瓶颈,因为所有团队都在同一周提测。
第 8 周的中期复盘会上,9 个项目里有 6 个报告"进度正常",但交付物清单一看,真正完成的只有 3 个。第 12 周,两个项目正式宣布延期一个月,管理层才开始追查人力问题,而此时已经过去了一个季度。
我后来帮他们重算第 12 周的真实可用工时,结果是 13100 小时,只有计划值的 62.7%。更关键的是,这个 62.7% 并不是突然掉下来的,它在第 1 周就已经是 63% 左右了,只是没人算过。

2. 三种典型的崩盘场景
在复盘的 30 多个组织里,崩盘方式高度集中在三种模式上。它们的表象不同,但根因都指向同一件事:可用工时的扣减项没有被显式建模。
第一种是共享职能挤兑。测试、运维、DBA、UI 设计这些角色通常不专属某个项目,而是被多个团队共享。排计划时每个团队都假设"我需要时就能拿到",于是共享角色的实际负荷被重复计算了三到五次。
第二种是支持性工作隐形。线上问题排查、客户答疑、售前技术评估、内部工具维护,这些工作没有项目编号,不进入任何计划,但它们真实吃掉了 15%-25% 的工时。我见过一家公司,运维背景的工程师每月平均有 6.5 天在处理没有工单的杂事。
第三种是多项目并行的切换损耗。一个人同时参与三个项目,看起来每个项目各占 1/3 时间,实际上因为切换成本,有效产出往往只有单项目的 70% 左右。这个损耗在计划里是完全不可见的。
| 崩盘模式 | 典型信号 | 隐形损耗量级 | 最先暴露的位置 |
|---|---|---|---|
| 共享职能挤兑 | 测试/运维排期总是"再等等" | 占共享角色工时的 40%-60% | 提测排队时长 |
| 支持性工作隐形 | 工程师说"这周没干项目" | 占个人工时的 15%-25% | 工时科目里的"其他" |
| 多项目并行切换 | 每个人都在多个群里 | 占个人工时的 20%-30% | 需求平均在制品数 |
3. 为什么"让人填工时"救不了计划
很多团队意识到问题后,第一反应是加强工时填报。结果通常是:填报率上去了,数据质量没上去。原因很简单,填报记录的是"已经发生的事",而计划需要的是"即将能承诺的事",两者之间隔着一整套换算逻辑。
我见过最极端的一个案例,一家公司要求工程师按 0.5 小时精度填报,系统里有 47 个工时科目。三个月后我抽样检查,发现 61% 的记录被填在了"需求开发"和"其他"两个科目里,中间 45 个科目基本没人用。数据看起来很完整,实际上完全无法支撑分析。
工时填报是必要的,但它是原料,不是成品。从原料到可用的计划模型,中间需要口径定义、清洗规则、折算系数和偏差校准,这四件事一件都不能少。
三、七个高频误区:多数团队卡在口径而不是工具
在讲正确做法之前,先把错误做法拆干净。下面这七个误区是我在复盘中最常遇到的,几乎每个团队至少踩三个。它们的共同特征是:看起来都很合理,所以很难被自己发现。
1. 误区一:把 8 小时当成可用工时
这是所有误差的源头。8 小时是法定工作时长,不是有效产出时长。一个人一天里真正能用于深度思考和编码的时间,我观察到的中位数在 4.5-5.5 小时之间,剩下的时间被会议、沟通、环境切换、邮件和即时消息吃掉。
如果你的团队在做需要高度专注的工作(架构设计、复杂缺陷定位、算法调优),这个数字还会更低。用 8 小时做计划,等于在计划阶段就给自己加了 45% 的隐性工作量。
2. 误区二:把"投入率"当成"可用率"
投入率回答的是"这个人有没有被分配任务",可用率回答的是"这个人还剩多少能真正交付的时间"。这两者可以差出 30 个百分点以上。
一个工程师 100% 投入在三个项目上,投入率是满的,但可用率可能只有 65%,因为切换成本和等待依赖不算在投入里。我常跟客户说:投入率是管理视角的自我安慰,可用率才是交付视角的现实。
3. 误区三:只算人天总量,不算人天结构
"我们这个月有 300 人天"这句话几乎没有信息量,因为人天是不同质的。3 个资深工程师 10 天,和 10 个新人 3 天,名义人天都是 30,实际产出可能差三倍。
我在建模时会把可用工时按能力档位切成几组:能独立负责模块的、能在指导下完成的、只能做明确任务的。计划时先满足第一档的配比,再往下排。只算总量不算结构,是排期会上"人明明够了却做不完"的最常见原因。
4. 误区四:用历史填报工时直接外推未来
历史数据当然要看,但直接外推会继承历史里的所有浪费。如果上季度有 20% 的工时花在了返工上,你按这个外推,就等于把返工写进了计划。
我的做法是分层外推:先看可交付工时(去掉返工和等待),再看可承诺工时(去掉切换),最后给出一个区间而不是一个点值。外推的目标不是复制过去,而是识别过去里哪些损耗是可以被管理的。
5. 误区五:忽略上下文切换成本
并行度对效率的影响不是线性的。我做过一个小样本观察(同一团队 12 名工程师、8 周):一个人同时参与 1 个项目时,其单位需求交付周期是 4.2 天;参与 2 个项目时是 5.8 天;参与 3 个项目时是 8.1 天。
也就是说,并行度从 1 提到 3,名义上投入时间只稀释到 1/3,但单个需求的交付周期几乎翻倍。切换成本不是管理口号,它在数据上是可测量的,通常表现为"个人在制品数"上升而"团队吞吐量"不变。

6. 误区六:把"看起来很忙"当成产能充足
忙碌是最不可靠的产能信号。我见过团队全员加班三个月,交付量却和去年持平,原因是加班带来的返工率上升抵消了新增工时。
判断产能是否真的充足,我只看三个指标:需求平均在制品数、需求平均交付周期、返工工时占比。如果三个都不改善,加班只是在原地打转。"忙"是过程指标,"稳定交付"才是结果指标,用过程指标做产能判断必然失真。
7. 误区七:一次性建模,全年不复盘
很多团队年初认认真真做了一次可用工时测算,然后一整年都不再更新。但人员会流动、业务会变化、共享职能的负荷会漂移,可用工时是一组会随时间衰减的参数,不复盘就会持续失真。
我建议的节奏是:季度做一次全量重算,月度做一次偏差校准,周度只看一个数字,本周可承诺工时还剩多少。这个频率既能保证精度,又不会变成负担。
四、专业判断逻辑:可用工时的四层漏斗模型
这一节是全文的方法论核心。我不喜欢给一堆"最佳实践",更愿意给一个可以被计算、被质疑、被修正的模型。四层漏斗模型的好处是,每一层都有明确的输入和输出,任何一层出问题都能被单独定位。
1. 第一层:日历层,先算清楚账面上有多少时间
日历层的计算非常机械:制度工作日 × 每日制度工时 × 在岗人数。国内通常取 21.75 个工作日、8 小时,得到 174 小时/人月。
这一层唯一需要注意的坑是"在岗人数"的定义。它应该按人月加权,而不是月末快照。一个人月中入职,他对当月的贡献不是 1 人月而是 0.5 人月;一个团队 10 人,其中 1 人月中入职、1 人月中离职,当月的有效人数是 9.5 而不是 10。
这个细节听起来很小,但在 200 人以上的组织里,人员流动带来的偏差通常在 3%-5%,足以让一个本就紧张的计划彻底失控。
2. 第二层:可用层,扣掉所有"人在但不产出"的时间
可用层要扣的四类时间,我按影响从大到小排列:
- 会议与协作时间:包括例会、评审会、需求澄清、一对一。中位数占制度工时的 12%-18%,跨团队协作密集的组织可以到 22%。
- 假期与调休:法定假期加年假、病假、调休,年化约 11%-13%,折算到月约 4%-6%。
- 支持性工作:客户答疑、线上问题、售前技术评估、内部工具维护。这是最容易被漏掉的一类,占 8%-15%。
- 培训与团队建设:技术分享、新人带教、团建,占 3%-6%。
四类加起来,可用层的折算系数通常在 0.70-0.78 之间。我一般默认取 0.74,除非有实测数据能推翻它。
3. 第三层:可承诺层,扣掉并行和切换的隐性损耗
这一层是最容易被忽略、也最容易被低估的。它的输入不是"人数",而是"每个人的并行项目数"。
我的经验系数是这样的:个人并行 1 个项目,切换损耗约 3%;并行 2 个,约 10%;并行 3 个,约 18%;并行 4 个及以上,约 25% 并快速上升。这个系数的含义是:并行不是简单的时间分割,而是效率的整体下降。
所以可承诺层的计算需要先算团队的平均并行度,再查表取系数。如果一个 10 人团队同时在跑 5 个项目,平均并行度 2.5,那么这一层的折算系数大约是 0.85。
4. 第四层:可交付层,扣掉等待、阻塞和返工
最后一层扣的是流程损耗:等待上游接口、等待测试环境、等待评审、等待产品确认,以及交付后因质量问题产生的返工。
这一层最难量化,因为它依赖的是流程成熟度而不是个人行为。我的经验是:流程规范、依赖少的团队这一层系数在 0.92-0.95;依赖多、跨团队接口多的团队在 0.82-0.88;如果团队还在同时做技术债清理,可以低到 0.78。
四层乘下来,一个典型的 100 人研发团队的可交付工时会落在 0.74 × 0.85 × 0.90 ≈ 0.57 的水平,即 174 × 0.57 ≈ 99 小时/人月。这个数字比很多人直觉里的"150 小时"低了三分之一,但它是可以被数据验证的。

5. 为什么这个模型比"经验系数"更可靠
有人会问:直接用一个 0.6 的系数乘一下不就行了?当然可以,如果你的组织形态十年不变的话。但实际情况是,四层里的每一层都会随组织变化而漂移。
比如团队从 3 个项目并行变成 6 个项目并行,第三层的系数会从 0.90 掉到 0.82,总系数从 0.57 掉到 0.52,衰减接近 9%。如果你只有一个笼统的经验系数,这种变化是看不见的。四层模型的价值不在于算得准,而在于它让每一层的变化都能被定位和追责。

五、数据分析全流程:从口径定义到反馈闭环的七个步骤
有了模型,接下来是让模型真正跑起来。这一节我把整套流程拆成七步,每一步都给出具体的做法和我踩过的坑。这套流程我在不同规模的团队里迭代过十几轮,现在的版本已经比较稳定。
1. 第一步:把口径写成一页纸
不要小看这一页纸。它应该包含:可用工时的定义、四层的折算系数、工时科目的清单、异常数据的判定规则、以及"谁有权修改口径"。
我坚持这一页纸必须由研发负责人和业务负责人共同签字,而不是由 PMO 单方面拟定。原因是口径本质上是一个承诺协议,如果业务方不认这个口径,后面所有的数据都会被质疑。
一页纸的篇幅很重要。我见过写成 20 页的口径文档,结果是没人看。控制在 800 字以内,每一条都能用一句话解释清楚,才算合格。
2. 第二步:建立工时科目表,但不要超过 6 类
科目表的目的是让数据可分析,不是让数据更精确。我的建议是分成 6 类,每类再挂不超过 4 个子项:
| 科目大类 | 包含内容 | 典型占比 | 是否进入项目计划 |
|---|---|---|---|
| 需求与设计 | 需求分析、方案设计、技术评审 | 15%-20% | 是 |
| 开发实现 | 编码、单元测试、代码评审 | 30%-38% | 是 |
| 测试与修复 | 用例编写、联调、缺陷修复 | 18%-24% | 是 |
| 支持与运维 | 线上问题、客户答疑、售前评估 | 8%-15% | 否,但需显式建模 |
| 协作与管理 | 例会、跨团队沟通、文档 | 10%-14% | 否 |
| 学习与成长 | 培训、技术分享、新人带教 | 3%-6% | 否 |
这张表的关键设计是:后三类虽然不进项目计划,但必须被显式记录。因为它们是可用工时漏斗里最大的三个漏点,如果不单独统计,就会被混进"开发实现"里,让开发效率看起来莫名其妙地低。
3. 第三步:选择采集方式,三种路径各有代价
采集方式的选择直接决定了数据能用到什么程度。我一般给客户三条路径,让他们按组织成熟度选:
- 轻量采集:只记项目归属和天数。每人每天标记主要投入的项目,精度到 0.5 天。采集成本低,适合 50 人以下或刚开始做可用工时管理的团队。
- 中量采集:项目 + 科目 + 天数。每人每天记录 1-3 条,包含项目和科目。这是我最推荐的档位,能支撑 80% 的分析需求,抵触度可控。
- 重量采集:任务级 + 小时级。精度最高,但采集成本高、数据失真风险大。只在有强合规要求或项目审计需求的场景下使用。
我踩过最大的坑是:在一个 60 人的团队推行重量采集,结果两周后填报率跌到 40%,大量记录集中在月末补填,时间分布完全失真。后来我们退回中量采集,填报率回到 92%,可用工时模型的误差反而从 28% 降到 11%。
4. 第四步:清洗数据,先定异常规则再谈分析
原始工时数据一定有噪声,关键是噪声要有一致的判定规则。我常用的五条规则是:
- 单日单人填报超过 12 小时的记录,标记为待核实。
- 连续 5 个工作日填报完全相同的记录,标记为疑似批量补填。
- 月末最后两天填报量超过全月 30% 的,标记为该月数据质量偏低。
- 某科目占比突然从 5% 跳到 40% 以上的,检查科目定义是否被误用。
- 离职前两周的填报记录单独标记,避免影响团队均值。
这五条规则不需要复杂系统就能实现,一段 SQL 就够。我在多个客户那里用过同一套逻辑,通常能识别出 5%-12% 的问题记录。下面是一个简化版的实现示例:
-- 计算个人月度可用工时与异常标记(示意)
WITH monthly AS (
SELECT
member_id,
team_id,
DATE_TRUNC('month', work_date) AS month,
SUM(hours) AS raw_hours,
COUNT(DISTINCT work_date) AS active_days,
MAX(hours) AS max_daily_hours,
SUM(CASE WHEN work_date >= DATE_TRUNC('month', work_date)
+ INTERVAL '27 day'
THEN hours ELSE 0 END) / SUM(hours) AS month_end_ratio
FROM worklog
GROUP BY 1, 2, 3
)
SELECT
month,
team_id,
AVG(raw_hours) AS avg_raw_hours,
AVG(active_days) AS avg_active_days,
-- 日历层:21.75 天 × 8 小时
174 AS calendar_hours,
-- 可用层:扣会议、假期、支持、培训(默认 0.74 系数)
ROUND(AVG(raw_hours) * 0.74, 1) AS available_hours,
-- 可承诺层:按平均并行度 2.2 取 0.85 系数
ROUND(AVG(raw_hours) * 0.74 * 0.85, 1) AS committable_hours,
-- 可交付层:按流程成熟度 0.90 系数
ROUND(AVG(raw_hours) * 0.74 * 0.85 * 0.90, 1) AS deliverable_hours,
SUM(CASE WHEN max_daily_hours > 12
OR month_end_ratio > 0.30
THEN 1 ELSE 0 END) AS flagged_members
FROM monthly
GROUP BY month, team_id
ORDER BY month, team_id;
这段 SQL 的重点不在语法,而在最后三行的设计:把同一批原始数据按三层系数分别算出三个数字,让管理者同时看到"乐观值"和"保守值"。我不建议只给一个数字,因为单一数字会让人误以为计划是精确的。
5. 第五步:建模,把口径变成可计算的公式
建模这一步的核心是把四层漏斗写成公式,而不是写成一个黑箱。我常用的形式是:
可交付工时 = Σ(单人制度工时 × 可用系数 × 并行系数 × 流程系数 × 能力权重)
其中能力权重是可选的一层,用来处理前面提到的人天不同质问题。我的经验值是:能独立负责模块的 1.0,能在指导下完成的 0.75,只能做明确任务的 0.5。这三个值不需要精确,重要的是让计划里体现结构差异。
建模时最容易犯的错误是追求单一数字。我的建议是永远给出区间:乐观值、基准值、保守值。排期会上一旦有人问"到底能不能做完",你可以回答"基准值下能做完,但前提是不接新需求;如果接了,就落到保守值区间,需要砍掉两个次要特性"。
6. 第六步:预测偏差校准,让模型越用越准
模型第一次算出来一定不准,这很正常。关键在于每个月做一次偏差校准:把上个月预测的可交付工时和实际交付工时对比,看偏差集中在哪一层。
我的校准方法是逐层归因,而不是整体调系数。如果连续两个月实际值都低于预测值 10%,先看是会议占比上升了,还是支持性工作增加了,还是并行度提高了。只有定位到具体层,调整才有意义;整体调系数等于放弃了模型的可解释性。

7. 第七步:建立反馈闭环,让数据能改变决定
最后一步是把数据用起来。我的做法是固定三个会议场景:
- 周度排期会(15 分钟):只看一个数字,本周团队剩余可承诺工时。低于阈值就冻结新需求进入。
- 月度校准会(60 分钟):对比预测与实际,逐层归因,调整系数。参与者必须包括研发负责人和业务负责人。
- 季度重算会(半天):全量重算四层系数,结合人员结构变化和业务节奏,输出下季度的承诺上限。
这三个会的关键不是频率,而是每个会都必须能做出一个决定。周会决定接不接需求,月会决定改不改系数,季度会决定承诺多少。如果开完会没有任何决定发生变化,这个会就该取消。
六、案例与数据观察:100 人以上研发组织的落地细节
方法论讲完,接下来讲落地。这一节我用一个 300 人研发组织的完整落地过程来说明,因为 100 人是一个明显的分水岭,过了这条线,靠 Excel 和个人记忆管理可用工时会开始系统性失效。
1. 为什么规模一过 100 人,Excel 就撑不住了
不是因为 Excel 算不动 300 行数据,而是因为它撑不住三种结构:跨团队的人员借调、共享职能的工时分摊、以及多项目并行的实时负荷。
在 100 人以下的团队里,这三件事通常靠负责人的记忆就能处理,因为一周内的人员变动他都知道。但到了 300 人,每天产生的人员变动、借调、临时支持可能有三四十条,任何人的记忆都跟不上。
我见过一家 400 人的公司,用一张 27 个 Sheet 的 Excel 管理人力,每次更新要三个人花两天。结果是数据永远是上周的,排期会用的都是过期信息,可用工时管理变成了事后记账。
2. 一个 300 人研发组织的落地过程
这家公司做金融科技,研发中心 300 人,分 18 个特性团队和 3 个平台组,同时跑 24 个项目。他们的问题很典型:每个季度末都要重新分配人力,每次分配都伴随团队之间的争论,争论的焦点永远是"我们真的没人力了"。
第一阶段的动作很朴素:先把口径写成一页纸,明确四层系数,然后选了一个产品线(约 60 人)做试点。试点只做两件事:中量级工时采集,加一个月度偏差校准会。
两个月后,试点的预测误差从 34% 降到 14%。这个数字本身不算惊艳,但它带来的变化是:产品线负责人在排期会上第一次能拿出一个数字说"这个季度我们最多只能接 3 个中等需求,第 4 个一定会延期"。这句话以前是凭感觉说的,现在是算出来的。
第二阶段推广到全研发中心时,他们引入了 PingCode 承接这套模型。选择它的原因很实际:300 人规模下,需求、任务、工时、迭代这几张表必须在同一个数据模型里,否则每次分析都要做一次跨系统对齐,成本高到没人愿意做。
落地时他们做了三件我认为很对的事。第一,把四层系数直接配置在系统的工时统计口径里,而不是让人手工算;第二,把"支持与运维""协作与管理""学习与成长"三个科目设为必填项,从源头保证漏斗的完整性;第三,把团队级可用工时做成一个固定的看板,周会只看这一个页面。
3. 三个可复用的数据看板
在多个客户那里验证下来,真正被高频使用的看板只有三个。做多了没人看,做少了不够用。
看板一:团队可用工时水位。展示每个团队本周的剩余可承诺工时,用红黄绿三色标记。红色代表低于 20% 缓冲,需要冻结新需求。这个看板的读者是研发负责人,更新频率是每天。
看板二:工时损耗结构。展示六类科目的占比及其环比变化,重点监控"支持与运维"和"协作与管理"两类。如果某一类连续两个月上升超过 3 个百分点,就需要专项排查。这个看板的读者是 PMO,更新频率是每月。
看板三:预测偏差趋势。展示过去 6 个月的可交付工时预测值与实际值的偏差曲线,按团队拆分。这个看板的读者是管理层,更新频率是每月。
我特别想强调第三块。绝大多数团队只做前两块,结果就是数据很丰富但模型从不改进。没有偏差看板,可用工时管理就永远停留在"统计"层面,进不到"预测"层面。

4. 落地过程中最容易翻车的三个点
这套流程我在不同组织里推过十几轮,翻车点高度集中。第一个是口径由单方制定。如果业务方不参与口径定义,他们会持续质疑数据,最后数据就没人用了。
第二个是科目设计过细。前面提过,超过 6 大类之后边际收益急剧下降。我在一个客户那里见过 47 个科目,最终有效使用的只有 5 个。
第三个是只看数据不做决定。有些团队把看板做得非常漂亮,但排期会上依然按老板的感觉分配人力。这种情况下,数据存在本身就是负资产,因为它消耗了采集成本却没有产生价值。
5. 一个反直觉的观察:可用率提升不一定靠加人
我跟踪过一个 80 人团队,他们在不增加任何人的情况下,把可交付工时占比从 58% 提到 67%,相当于凭空多出 7 个人力。做法只有三件事:
- 把例会从每周 3 次减到 1 次,会议时间占比从 17% 降到 9%。
- 把共享测试资源从"谁都能拉"改成"按迭代排期申请",等待时间从平均 2.8 天降到 0.9 天。
- 把并行项目数从人均 2.6 降到 1.8,切换损耗系数从 0.82 提到 0.90。
三件事乘起来,就是 0.67 / 0.58 ≈ 1.16,也就是 16% 的产能提升。这三件事没有一件需要额外预算,需要的只是把可用工时损耗当成一个可以被管理的对象。

七、不同情况下的行动建议
方法论和案例讲完,接下来是最实际的部分:你所在的团队该从哪一步开始。我的建议是按规模分档,因为规模决定了两件事,可用工时的主要漏点在哪里,以及你能承担多高的采集成本。
1. 50 人以下团队:先做口径,别急着上系统
这个规模的团队,误差主要来自"从来没算过"而不是"算不准"。所以第一步不是采集数据,而是把四层系数估出来,写在墙上。
具体动作:找三个月的历史数据(哪怕是从项目周报里扒的),按四层模型粗略回算一次,得出你们团队的可交付工时占比。这个数字通常会落在 65%-72% 之间,看到它本身就是一次认知冲击。
然后做一件事:把下一个季度的计划按这个系数重排一次,看看原来"刚好够"的计划是不是其实超配了 30%。这个动作带来的价值,比买任何系统都大。
2. 50-200 人团队:建立中量采集 + 月度校准
这个规模是分水岭。跨团队协作开始出现,共享职能开始成为瓶颈,靠记忆管理开始失效。
具体动作:上中量级采集(项目 + 科目 + 天数),科目控制在 6 大类,每月做一次偏差校准会。校准会只需要 60 分钟,但必须逐层归因,不能整体调系数。
这个阶段不建议追求精度。我的经验是,能把预测误差控制在 15% 以内,就已经超过绝大多数同规模团队了。精度提升的边际成本在这个阶段非常高,不如先把流程跑顺。
3. 200-1000 人团队:需要系统承接,且必须先统一口径
这个规模的团队,Excel 一定撑不住,但不是因为算力,而是因为数据没法在同一处对齐。这个阶段确实需要平台化承接。
我的建议是先统一口径、再选平台。因为平台只是把口径固化下来,如果口径本身是错的,平台只会让错误跑得更快。很多团队顺序反了,先买平台再想口径,结果平台变成了一个昂贵的记录工具。
在这个阶段,我会建议考虑像 PingCode 这类面向中大型研发组织的项目管理平台,因为它把需求、任务、迭代、工时放在同一个数据模型里,四层系数可以直接配置在统计口径中,不需要每次分析都做跨系统对齐。对 300 人以上的组织来说,这个"不用对齐"本身就是最大的价值。
但要清楚它的边界:平台能解决"数据在哪"的问题,解决不了"口径是什么"和"谁有权拒绝需求"的问题。后两件事必须由管理层自己完成。

4. 多项目并行组织:先管并行度,再管工时
如果你的组织同时在跑的项目数超过团队数的 1.5 倍,那么可用工时的最大漏点是并行切换,而不是会议或支持。这种情况下,优先动作应该是收敛并行度。
具体做法:统计每个人的在制品项目数,把超过 2 的挑出来,强制收敛到 2 以内。这个过程一定会遇到阻力,因为每个项目负责人都认为自己项目重要。这时候需要用数据说话,把切换损耗对应的工时折算成"因为并行,我们每个月损失了 X 人"。
我做过一次这样的换算:一个 60 人团队,人均并行 2.8 个项目,收敛到 1.8 后,可交付工时占比从 57% 提到 66%,相当于多出 5.4 个人。这个数字比任何说服都有效。
5. 外包与驻场混合团队:单独建一层口径
混合团队的特殊性在于,外包人员的可用工时结构和自有员工不一样。他们的会议参与度低,但交接成本高;支持性工作少,但上下文理解成本高。
我的建议是给外包单独建一层系数,不要和自有员工混算。经验上,外包人员的可用层系数会高 3-5 个百分点(会议少),但可交付层系数会低 5-8 个百分点(依赖等待多、返工多)。混算会同时高估自有员工和低估外包。
八、不同情况下的取舍
任何管理动作都有代价。这一节我想讲清楚四组取舍,因为很多团队推行可用工时管理失败,不是因为方法错了,而是因为选了不适合自己阶段的取舍组合。
1. 精度与采集成本的取舍
精度每提高一档,采集成本大约翻倍,而决策质量的提升往往不到 30%。这是一条非常陡的收益曲线。
我的判断标准是:如果提高精度不能改变你的决策,就不要提高精度。举例来说,如果你的排期决策是按"周"为单位做的,那么工时精度到"天"就够了,精确到"小时"没有任何决策价值。
反过来,如果你的团队在做非常紧凑的迭代(比如一周一个迭代),那么天级精度可能不够,需要到半天。这时候提高精度是有价值的,因为它确实能改变排期。
2. 填报粒度与数据质量的取舍
这一组取舍前面提过,这里给出更具体的曲线关系。我的观察是:
| 填报粒度 | 典型填报率 | 数据可信度 | 适用场景 |
|---|---|---|---|
| 按周 + 项目 | 95% 以上 | 中(只能看趋势) | 50 人以下,或只做季度盘点 |
| 按天 + 项目 + 科目 | 85%-92% | 高(可支撑预测) | 大多数 50-500 人团队 |
| 按半天 + 项目 + 科目 | 70%-85% | 高(但补填增多) | 迭代周期短于两周的团队 |
| 按小时 + 任务级 | 40%-65% | 低(补填严重) | 仅合规审计场景 |
这张表最值得看的是最后一行:精度最高的方案,数据可信度反而最低。原因很简单,当填报成本超过人的容忍阈值,人就会用"批量补填"来应对,而批量补填的数据在时间维度上完全失真。
3. 计划刚性与灵活性的取舍
计划太刚性,遇到变化就全盘失效;计划太灵活,就失去了约束力。我的建议是分层设定刚性:季度承诺是刚性的,月度计划是可调的,周度排期是每日可变的。
具体来说,季度承诺一旦定下,除非发生重大变化(比如人员减少 15% 以上或业务方向调整),否则不调整。月度计划允许在 ±10% 范围内浮动。周度排期完全按实际情况来。
这个分层的好处是,团队知道哪些是不能动的,哪些是可以商量的。最糟糕的情况是所有层级都一样灵活,结果就是所有承诺都可以被推翻。
4. 自建与采购的取舍
这个问题我被问过很多次。我的判断依据是三个:团队规模、变化频率、以及是否有专职的效能或 PMO 角色。
50 人以下、变化不频繁、没有专职效能角色的团队,自建(Excel + 简单脚本)完全够用,而且更灵活。200 人以上、跨团队协作多、有 PMO 的组织,采购平台的综合成本通常更低,因为自建的维护成本会随时间线性上升。
中间地带最难判断。我的经验法则是:如果每个月花在数据对齐上的时间超过 20 小时,就该考虑采购了。因为这 20 小时本可以用来做偏差分析,而后者才是真正产生价值的部分。

5. 一个经常被忽略的取舍:要不要公开团队级数据
这个取舍很少有人讨论,但它影响很大。我的建议是:团队级可用工时数据应该在管理层公开,在团队内部不公开个人数据。
公开团队级数据的好处是让资源竞争变得透明,减少"谁嗓门大谁拿人"的情况。不公开个人数据的原因是,个人工时一旦被公开比较,就会迅速演变成一场填报竞赛,数据质量会崩塌。
我在一个客户那里见过反例:他们把个人工时做成排行榜,一个月内平均填报工时上升了 12%,但实际交付量没有任何变化。三个月后这套制度被废除,但数据质量的恢复花了半年。
九、常见问题解答
1. 可用工时和有效工时是一回事吗?
不完全一样。可用工时强调的是"可以被安排的时间",有效工时强调的是"真正产生价值的时间"。可用工时是可交付工时的上一层级,它还包括了一部分必要的协作与等待时间。
在实际使用中,我一般用可用工时做计划,用有效工时做效率分析。混用会导致两个问题:用有效工时做计划会过度保守,用可用工时做效率分析会掩盖流程问题。
2. 团队不愿意填工时怎么办?
先区分是"不愿填"还是"填了没用"。我遇到的情况里,八成是后者,团队填了半年,从来没见过任何反馈,自然就不愿意填了。
解法是先把数据用起来。在推行采集之前,先用历史数据做出一次分析,在排期会上展示出来,让团队看到"这个数字确实改变了我们的决定"。有了这个前提,再推行采集,抵触会小很多。
剩下的两成确实是意愿问题。这时候需要简化科目、降低填报频率,并明确告知数据的用途边界(比如不会用于个人绩效考核)。
3. 四层系数应该多久调整一次?
我的建议是:可用层和可承诺层每季度调整一次,可交付层每月微调。原因是前两层主要受组织结构和业务节奏影响,变化较慢;第四层受具体项目依赖影响,变化较快。
调整时不要一次改太多。我见过一个团队一次性把四个系数全调了,结果下个月的预测偏差反而变大,因为无法判断偏差来自哪一层。每次只调一层,观察一个月,再决定下一步。
4. 小团队也需要做四层建模吗?
不需要完整建模,但需要知道每一层的量级。30 人团队做完整四层建模的投入产出比不高,比较实际的做法是估一个总体系数,然后在关键决策点(比如接不接一个大需求)做一次快速回算。
我的经验是,30 人以下团队用 0.68-0.72 的整体系数就够,重点是把"不能按 8 小时算"这个认知建立起来。等团队过 80 人,再开始分层。
5. 项目型组织和产品型组织,可用工时管理有什么不同?
项目型组织的可用工时波动更大,因为项目有明确的起止,人力需求呈脉冲式。这类组织更需要"峰值管理",提前两个月预测人力峰值,提前准备外部资源。
产品型组织的可用工时相对平稳,重点是结构优化,也就是怎么降低支持性工作和切换损耗的占比。两类组织的指标应该不一样:项目型看峰值满足率,产品型看可交付工时占比。
6. 用 AI 能不能自动算出可用工时?
能算,但前提是数据已经结构化了。AI 在可用工时管理里最有价值的地方不是算系数,而是异常识别和归因,比如自动发现某个团队的会议占比连续三个月上升,或者某个项目的返工工时异常。
但如果底层数据只有"项目 + 天数"这种粗粒度,AI 也只能在粗粒度上做判断。数据结构和口径永远是第一位的,算法是第二位的。这一点在过去几年里被反复验证,我不认为会改变。
十、总结:可用工时是承诺管理,不是统计工作
写到这里,我想把最核心的判断再收一遍。这篇文章表面上讲的是怎么算工时、怎么建模型、怎么做分析,但底层其实只讲了一件事:一个研发组织能不能准确知道自己有多少产能,决定了它能不能做出可靠的承诺。
我见过太多团队把可用工时管理做成了一项统计工作,每月收集数据、生成报表、归档,然后继续凭感觉排期。这种做法的成本不低,收益几乎为零。真正有价值的做法,是把可用工时变成一个能在会议上改变决定的数字。
如果你只从这篇文章里带走三件事,我希望是这三件。
第一,从今天起停止用"人数 × 天数 × 8"排计划。哪怕只是粗略估一个 0.6-0.7 的系数,你的计划准确度都会有肉眼可见的提升。这一步不需要任何工具,今天下午就能做完。
第二,把四层漏斗写成一页纸,和业务方一起签字。口径是承诺协议,不是技术文档。没有业务方认可的口径,数据永远会被质疑。
第三,给自己建一块偏差看板。没有偏差看板,模型就永远不会变准;有了它,哪怕一开始误差 30%,半年内降到 12% 以内是完全可期的。
最后说一句可能有点反直觉的话:可用工时管理的目标不是算得更准,而是让团队敢于说"不"。当一个研发负责人能拿着数据说"这个季度我们最多接三件事,第四件一定会延期",这个组织才算真正拥有了人力计划能力。数据只是工具,拒绝才是能力。
下一步怎么走,取决于你现在的位置。如果还没开始,今天就先把四层系数估出来;如果已经在采集,下个月就加一次逐层归因的校准会;如果已经在用平台,检查一下你的偏差看板是不是真的有人在看。这三件事,每一件都能在两周内启动。
常见问题解答(FAQ)
1. 可用工时和工时填报有什么区别?我们每周都在填工时,为什么排期还是不准?
我们团队用项目管理平台填了大半年工时,每周五大家都老老实实填,数据看着挺完整的。但一到排期还是拍脑袋,做出来的计划每次都要延期。我一直没搞明白,工时数据都在这了,为什么就是用不上?
工时填报是事后记录,记的是已经花掉的时间;可用工时是事前产能,估的是未来某段时间里能真正投到项目上的时间。方向相反,口径也不同,直接拿填报数据去预测,等于用后视镜当挡风玻璃。我们踩过的坑有三个:一是填报数据里混着大量返工、等待和上下文切换,直接用会把历史的浪费当成常态;
二是填报粒度太粗,一天一条“需求开发 8 小时”,拆不到任务类型,也没法区分有效投入和无效消耗;三是填报有动机偏差,很多人会把工时填满 8 小时或者填成看起来合理的数字,导致日工时分布被压缩。
你可以先自查一下:如果你们团队的日工时记录大量集中在 7.5 到 8 小时之间,形成明显的双峰,那这份数据基本只能做总量核算,做不了预测。正确做法是分开建两张表,工时数据当校准工具,可用工时当排期依据。
具体操作是先按角色算出有效可用工时系数,然后拿过去两三个迭代的真实工时去回测这个系数,看偏差有多大,误差在正负 15% 以内再拿来排期。这样两张表各司其职,填报数据反而能发挥它真正的作用,验证你的假设,而不是替代你的假设。
2. 团队没有任何历史数据,第一次做可用工时盘点应该从哪一步开始?
我们是 20 人的研发团队,之前完全没做过工时或产能方面的数据积累,现在老板要求做明年的资源计划。我不想一上来就搞个大而全的系统,怕推不动也怕不准。有没有那种两周内能出第一版、还能被业务方认可的起步方式?
不要从系统开始,从日历加访谈开始。第一步,导出全员过去 8 周的工作日历,只统计会议、培训、面试、出差这几类,算出会议占比。这一步零成本、零打扰,当天就能出数,而且拿出来的数字没人能反驳。
第二步,找 5 到 8 个人做 30 分钟访谈,覆盖前后端、测试和产品,问三个问题:上个迭代真正专注做核心工作的时间占比大概多少、最常打断你的是什么、你觉得自己每周有多少时间是可被计划的。取中位数,不要取平均数,因为个别人极端的回答会把平均数拉偏。
第三步,用 1 减去会议占比再减去访谈得到的打断占比,乘上名义工时,得到第一版有效可用工时。第四步,也是最重要的一步,选一个正在进行的迭代做一次回测:用这个系数去预测迭代完成度,然后看实际偏差。偏差在正负 15% 以内就继续用,超出了就去找是哪一项扣减估错了。
判断依据很简单,第一版系数的目标不是精确,而是可被质疑、可被修正。排期本身还有缓冲率兜底,系数误差 15% 完全能吸收。两周能出第一版并且被人挑战过,比三个月憋出一版完美模型有价值得多,因为后者往往在没人验证的情况下直接进了汇报材料。
3. 可用工时算出来之后,怎么用才能不变成压榨员工的 KPI?
上次我们把产能数据报上去之后,领导第一反应是原来还有这么多余量,然后就开始往计划里塞需求。我现在很担心,本来是为了把排期做准,结果变成给大家上强度。有没有办法让这套数据只用于计划、不用于考核?
这个担心是对的,而且大概率会发生,所以闸门要提前设好,等事情发生了再补就晚了。第一道是口径闸,在数据表里同时给出可承诺可用工时和实际投入工时两列,并且明确规定只有前者进计划、后者只做复盘,不进入任何个人评价。
第二道是缓冲闸,把缓冲率写进制度,按不确定性分档,探索型项目给 25% 到 30%,缓冲属于团队,任何人不走变更流程不能动它。第三道是变更闸,需求增加必须用换而不是加,新需求进来要么砍掉等量的旧需求,要么明确写延期,不允许默认靠加班消化。判断依据有两层。
第一层是数据质量:一旦可用工时和个人绩效挂钩,数据立刻失真,这是所有度量系统的通病,你得到的不是真实产能而是看起来饱和的填报,整个模型就废了。第二层是产能本身的规律:利用率长期做到 95% 以上的团队,交付周期反而会变长,因为系统里没有任何余量去吸收波动和突发问题。
我们有过一个季度的实测,产能利用率做到 94%,代价是跨项目支援请求的平均响应时间从 1.2 天涨到 4.5 天,两个线上问题的修复被拖到第二天。所以我把研发团队的健康区间定在 75% 到 85%,超过 90% 就该主动踩刹车。
这套数据的目的是让计划可信,不是让人满载,这两件事经常被混为一谈,但对应的管理动作完全相反。
4. 多项目并行时,同一个人的可用工时怎么在不同项目之间分配?
我们这边一个后端同时挂三个项目,每个项目经理都觉得他应该有一半时间在自己项目上。到了月底谁的活都没干完,谁都觉得自己被亏待了。这种一个人的可用工时被多个项目争抢的情况,到底该怎么切才既公平又可控?
不要按人切百分比,要按时间块切。按人切百分比在实践中几乎必然失败,因为百分比没有时间边界,谁先喊谁先占,最后变成嗓门大的赢。
具体做法是:把一个人的有效可用工时按周切成时间块,比如某个后端每周有效可用工时 26 小时,分配为 A 项目 2 天约 13 小时、B 项目 1.5 天约 10 小时、C 项目 0.5 天约 3 小时,并且明确写进排期表的占用日历里,而不是写在某人的备注或者聊天记录里。
第二,设置最小切换粒度,不要出现 0.1 天这种分配,低于半天的时间块切换成本会吃掉收益。我们做过对比,同一个后端同时并行三个项目时,三个项目的合计产出比他专注做两个项目时低 18%,所以我给团队的硬约束是同时并行的项目不超过两个,超过两个的,有效可用工时在原系数上再乘 0.8。
第三,设一个共享池,把团队 10% 到 15% 的可用工时集中管理,专门处理跨项目的临时插入和救火,谁用谁申请、用完记账。判断依据是:多项目争抢的本质不是分配不公,而是缺少冲突解决机制。
你没办法让每个项目经理都满意,但你可以把冲突从人际拉扯转移到时间块和共享池上,一旦变成可计算的对象,争议就从情绪问题变成了排期问题,这就好办了。
核心关键词
文章包含AI辅助创作:可用工时管理指南:研发团队如何做好人力资源计划,数据分析全流程,发布者:飞飞,转载请注明出处:https://worktile.com/solution-1/archives/539996
读者评论
四层漏斗的拆法比我以前见过的“人天打八折”靠谱,但0.74、0.81、0.92这三个系数本身还是经验值;换到测试占比高、评审会密集的团队,肯定对不上。我更好奇的是系数怎么校准:如果每个季度都要拿历史数据重算一遍,维护成本可能比它省下的延期损失还高。另外,按人天填报确实比按小时填质量好,但前提是这些数据不用于考核,否则填得再细也白搭。
想让所有人用同一套口径没错,但落到现实里,难的不在定义,而在让业务方认可。我们算出来可承诺层就一百小时出头,业务照样按账面工时提需求,理由永远是“别的团队能做,你们为什么不能”。所以我觉得文章缺了最关键的一环:承诺超了以后,研发负责人怎么有理有据地拒绝。文中说开工前先和业务确认最大承诺工时,这句话在多数公司根本谈不下来,最后还是靠延期兜底。
三十人左右的团队,负责人心里基本有数,谁在干什么不用系统也知道。真按四层拆,反而显得重,我试过类似做法,最后退回成一个粗口径的可用率,误差也能接受。文章说百人以上误差非线性放大,这个我信,但五十人、八十人这种中间状态怎么处理,没看到可操作的分界。数据链路是好东西,只是别又变成一种新的“精确的幻觉”。