研发在制品数量指某一时点上已开始、未完成的工作项个数,按团队或价值流统计。它服务于瓶颈识别与并行度控制,计算前需要先固定统计对象、起止状态和时间窗,再取时点快照或求区间平均。本文给出可复算的口径、公式与算例,并说明数量高低如何与流动时间、吞吐量联合解读。
要点总览(TL;DR)
- 研发在制品数量是某一时点上已开始、未完成的工作项个数,按团队或价值流统计,不用于个人绩效排名。
- 计算前先固定统计对象(需求、任务、缺陷或全部工作项)、起始与完成状态、统计时点,口径稳定才能跨期比较。
- 时点快照法统计某时刻处于在制状态的工作项数;区间平均法用各时点在制品数之和除以时点个数,分母是时点数量。
- 数量高低需结合流动时间与吞吐量判断:在制品上升而吞吐量不变,通常意味着排队拉长;单看数量不能证明效率或质量。
- 取数依赖完整的状态变更记录,缺失记录、跨团队流转与重开件需在口径中写明处理规则,趋势观察优于单点比较。
评估目标:在制品数量要回答什么流动问题
在制品数量(Work in Progress,WIP)回答的是一个很具体的问题:在某个观察时点,团队手上已经开工但尚未完成的工作有多少件。它衡量的是并行负载和排队规模,而不是产出速度。研发工作从进入开发到交付之间通常存在评审、测试、等待环境等环节,这些环节会积累未完成项;在制品数量就是把这些积累显性化的计数工具。
这个指标在流动效率分析中承担三个用途。第一,观察排队:当在制品数量持续上升而吞吐量不变,说明进入速度大于离开速度,工作在流程中堆积。第二,观察并行过载:团队同时推进的事项超出可承载范围时,切换成本和等待时间通常随之上升。第三,观察流动受阻:在制品数量在某状态前集中堆积,往往指向该状态前的等待或资源约束。
在制品数量需要与流动时间、吞吐量放在一起定位。流动时间衡量一件工作从开始到完成经过多久,吞吐量衡量单位时间完成了多少件,在制品数量则衡量中间积压了多少件。三者构成一个基本的流动关系:在进入速度稳定的前提下,在制品越多,单件工作的平均等待越长。因此单独看数量无法判断效率高低,必须结合另外两个指标。
使用边界需要提前说明:在制品数量按团队或价值流统计,不用于个人绩效排名。个人层面的在制品数量受分工方式影响很大,把它作为考核依据会诱导拆分工作项、隐藏真实并行度等行为,反而破坏数据可信度。这个指标的定位是流程诊断输入,不是绩效结论。
指标与范围:统计哪些工作项、哪些状态
在制品数量最常见的口径漂移来自统计对象和状态边界不统一。两个团队都报“在制 30 件”,可能一个统计全部需求,另一个只统计开发中的任务,数值不可比。因此计算前需要先写清楚口径定义,并在跨周期、跨团队比较时沿用同一份定义。
统计对象需要先做选择。可以只统计需求(适合看价值流层面的积压),可以只统计开发任务(适合看执行层并行度),可以只统计缺陷(适合看质量侧积压),也可以统计全部工作项(适合看整体负载)。选择依据是分析目的:关注交付周期时以需求为主,关注团队负荷时以任务为主。混合统计时需要在口径中说明各类工作项的权重是否一致。
起始状态与完成状态的界定决定了一件工作何时“进入”和“离开”在制。常见做法是以“已排期”或“开发中”作为起始状态,以“已上线”或“已验收”作为完成状态。边界选择会显著影响数值:把“待评审”计入起始,在制品数量会偏高;把“待验收”排除在完成之外,在制品数量同样偏高。关键是保持稳定,并在口径文档中写明。
统计单元按团队、价值流或项目划分。按团队统计适合观察单个团队的并行负载,按价值流统计适合观察端到端积压,按项目统计适合观察单个交付包的进度压力。同一份报表中混用不同统计单元会导致口径不可比,需要分开呈现。
阻塞、等待评审等状态是否计入,需要在口径中明确。一般建议计入:这些状态下的工作项仍占用团队注意力与后续资源,属于实际在制。若组织希望单独观察“活跃在制”,可以另设一个排除阻塞状态的辅助口径,但主口径应保持包含,避免通过标记阻塞来人为压低数值。
| 口径要素 | 可选值 | 选择建议 |
|---|---|---|
| 统计对象 | 需求 / 任务 / 缺陷 / 全部工作项 | 按分析目的选择,跨期比较时保持不变 |
| 起始状态 | 已排期 / 开发中 / 已受理 | 选择工作真正开始占用资源的那个状态 |
| 完成状态 | 已上线 / 已验收 / 已关闭 | 选择价值真正交付的那个状态 |
| 统计单元 | 团队 / 价值流 / 项目 | 同一报表内不混用 |
| 阻塞与等待状态 | 计入 / 不计入 | 主口径计入,可另设辅助口径 |
| 统计时点 | 每日固定时刻 / 每周固定日 | 固定时刻,避免日内波动干扰 |
数据口径与证据:从工作项状态记录取数
在制品数量能否复算,取决于状态变更记录是否完整。取数的基础是工作项的状态流转历史,而不是当前状态字段。只有当前状态,只能算出今天的一个快照;要算历史时点或区间平均,必须有每次状态变更的时间戳。
所需字段通常包括:工作项ID(唯一标识,用于去重和追踪重开)、当前状态、状态变更时间(每次变更一行记录)、所属团队或价值流。若要做加权算法,还需要各状态的进入与离开时间,用于计算停留时长。字段清单确定后,取数逻辑应固化为可重复执行的查询或报表,避免每次手工整理造成口径差异。
时间窗与统计时点需要预先定义。时间窗是观察的起止日期,统计时点是窗内取快照的具体时刻,例如每日 18:00 或每周五下班前。时点应固定,因为研发工作项的状态在一天内会波动,不同时刻取数会得到不同结果。时间窗长度建议覆盖至少四到六个完整的迭代周期,样本过短时趋势判断不可靠。
数据质量问题需要在计算前处理,并在口径中写明规则。缺失状态记录的工作项,无法判断其在历史时点是否处于在制,通常做法是排除并单独记录数量,避免静默丢失。跨团队流转的工作项,在流转前后归属不同统计单元,需要约定按当前归属还是按流转时点归属统计,两种做法结果不同但都可接受,关键是全周期一致。重开件指已完成后又回到在制状态的工作项,需要决定是否重复计入:按工作项计数时通常只计一次,按流转次数计数时则每次重开都形成新的在制区间,两种口径服务于不同分析目的。
数据可比性有三个前提:口径定义在比较周期内未变更;统计时点固定;统计单元边界稳定(团队重组、项目拆分需要单独标注)。任一前提被打破,跨期比较的结论都需要谨慎对待。
在工具层面,这类取数依赖工作项状态流转被完整记录并可查询。以 ONES 为例,工作项在状态间的流转会形成状态变更记录,团队可以据此按固定时点回溯各状态下的工作项数量,把口径定义落到统一的字段和状态配置上,减少各团队自行整理带来的差异。具体字段与导出方式以实际系统配置为准。
计算步骤:时点快照与区间平均两种算法
在制品数量有两种基本算法,分别回答不同问题。时点快照法回答“某一天有多少件在制”,区间平均法回答“这段时间平均有多少件在制”。前者适合看波动和堆积位置,后者适合做趋势比较和容量规划。
时点快照法。选定统计时点 t,统计该时点处于在制状态(已过起始状态、未达完成状态)的工作项个数。公式为:WIP(t) = 在时点 t 满足起始状态 ≤ 当前状态 < 完成状态的工作项数。单位是件。按日或按周重复取数,得到一条在制品数量序列,用于观察波动。
区间平均法。在时间窗内取 n 个等距时点,各时点在制品数之和除以时点数量。公式为:平均 WIP = Σ WIP(tᵢ) / n,其中 i = 1 到 n。分母是时点个数,不是天数,也不是人数。例如四周内每周取一个时点,n = 4;若每日取一个时点、共 28 天,n = 28。时点必须等距,否则平均值会被取样密集的区段拉偏。
按停留时长加权的可选算法。当需要反映长期滞留项对在制规模的贡献时,可以对每个工作项按其处于在制状态的天数加权,再求平均。这类算法对状态记录完整性要求更高,适合在基础口径稳定后作为补充分析,不建议作为首个上线口径。
边界情况需要预先约定。分母为零指时间窗内没有取到任何有效时点,此时平均值无定义,应返回空值并标注原因,不能记为 0。样本过少指时点数量过少(例如只有一两个快照),此时平均值波动大,建议只呈现快照序列、不报平均值,或明确标注样本量。工作项总数为零时,在制品数量为 0 是有效结果,与分母为零不同,需要区分处理。
算例:一个十人团队的四周在制品变化
以下为演示情景,数据为构造值,用于说明计算过程,不代表任何真实团队的表现。假设一个十人团队,统计对象为需求,起始状态为“开发中”,完成状态为“已上线”,阻塞与等待评审状态计入在制,统计时点为每周五 18:00,观察四周。
| 周次 | 快照时点在制数(件) | 本周新增进入(件) | 本周完成离开(件) | 备注 |
|---|---|---|---|---|
| 第1周 | 12 | 8 | 6 | 基线周 |
| 第2周 | 14 | 9 | 7 | 进入略多于离开 |
| 第3周 | 19 | 11 | 6 | 进入明显增加,完成未跟上 |
| 第4周 | 17 | 7 | 9 | 进入回落,完成回升 |
按区间平均法计算:平均 WIP = (12 + 14 + 19 + 17) / 4 = 62 / 4 = 15.5 件。分母为 4 个时点。若改为每日取数、共 28 个时点,则分母为 28,计算方式相同。
结果呈现上,快照序列比单一平均值提供更多信息。第1周到第3周在制品从 12 升至 19,同期每周完成量维持在 6 到 7 件,说明进入速度超过了团队的完成能力,积压集中在流程中段。第4周完成量升至 9 件、在制品回落至 17 件,是积压开始消化的信号。瓶颈线索指向第3周前后的进入激增,需要进一步查看这些工作项停留在哪个状态最久,判断是评审等待还是测试资源不足。这个算例说明:平均值给出规模,序列给出方向和转折点,两者结合才能定位问题。
解读与限制:数量高低如何判断,哪些结论不能下
在制品数量没有通用的达标线,高低需要结合团队规模、工作项粒度和流动时间来判断。十人团队平均在制 15 件与三十人团队平均在制 15 件,含义完全不同;把需求拆得很细的团队,数值天然偏高。因此解读应基于自身历史趋势,而不是与其他团队或外部基准直接比较。
数量偏高的常见原因包括:进入速度大于完成能力、并行推进事项过多、某状态前存在等待或资源约束、工作项拆分过细导致计数膨胀。数量偏低的常见原因包括:投入不足、统计口径遗漏了部分状态、工作项在系统中登记不及时、团队刚完成一轮集中交付。这些原因指向不同的管理动作,需要结合阻塞原因和状态分布进一步区分。
解读时应与流动时间和吞吐量联合观察。在制品上升而吞吐量不变,通常意味着流动时间将被拉长;在制品下降而吞吐量同步下降,可能是投入减少而非效率提升。只有在吞吐量稳定或上升、同时在制品下降时,才可以较有把握地判断流动状况改善。
这个指标不能直接证明效率或质量。在制品数量低可能是流程顺畅,也可能是工作没有被如实登记;数量高可能是管理混乱,也可能是团队正在并行处理多个紧急事项。它反映的是负载和积压的规模,不反映工作的价值、难度或完成质量。把在制品数量单独作为绩效结论,会误导判断并诱发数据操纵。
趋势观察优于单点比较。单周的快照受节假日、发布节奏、临时插入事项影响较大,容易产生噪声。建议以四到六个迭代周期的序列为基础判断方向,并在口径变更、团队重组时标注断点,避免把口径变化误读为流动变化。
- 可下的结论:积压规模、变化方向、堆积集中的状态区间、与吞吐量的相对关系。
- 不可下的结论:团队效率高低、个人产出优劣、质量水平、因果关系归因。
- 需要补充的证据:状态停留时长分布、阻塞原因分类、流动时间分位数、进入与离开速率的对比。
常见问题
统计时点选每日还是每周,对结果影响大吗?
影响主要来自取样密度和取样时刻是否固定。每日取数能捕捉周内波动,适合观察短期堆积和发布节奏带来的起伏;每周取数样本少、趋势更平滑,适合做跨迭代比较。两种方式都可以用,关键是同一分析周期内保持一致:时点固定(例如每日 18:00 或每周五下班前),不要中途更换频率或时刻。若中途调整,平均值和序列会出现断点,跨期结论需要重新校准。
工作项被重开后,在制品数量要重复计入吗?
取决于计数口径。按工作项计数时,同一工作项通常只计一次,重开不额外增加在制件数;按流转区间计数时,每次重开都形成一段新的在制区间,会重复计入。前者适合看积压规模,后者适合看返工带来的额外流动负担。两种做法都可行,需要在口径文档中写明,并在整个观察周期内保持一致,否则同一团队的历史数据不可比。
在制品数量下降,是否说明团队流动效率提升了?
不能直接下这个结论。在制品下降可能来自完成能力提升,也可能来自进入减少、投入不足或登记不及时。判断时需要同时看吞吐量:如果在制品下降而吞吐量稳定或上升,流动状况改善的证据更强;如果在制品和吞吐量同步下降,更可能是投入或进入量减少。此外还要排除口径变更和团队重组带来的断点,再结合状态停留时长分布确认积压是否真的被消化。
不同团队的在制品数量可以直接横向比较吗?
直接比较意义有限。团队规模、工作项拆分粒度、统计对象和状态边界不同,数值天然不可比:十人团队与三十人团队同为 15 件,负载含义完全不同;把需求拆得很细的团队计数会偏高。若确需横向观察,应先统一口径定义,并同时呈现团队人数、工作项平均粒度和流动时间,把数量放在相同背景下解读。更稳妥的做法是以各团队自身历史趋势为基准。
状态变更记录缺失的工作项应该怎么处理?
常见做法是排除出计算并单独记录数量,避免静默丢失导致数值被低估却无人察觉。排除后应在报表中标注缺失件数,作为数据质量指标持续跟踪。若缺失比例较高,说明状态登记流程存在问题,此时在制品数量的可信度下降,应先补齐记录再用于趋势判断。跨团队流转的工作项同样需要约定归属规则,按当前归属或按流转时点归属都可以,但全周期必须一致。
