确定研发等待时间的统计口径,关键是把三件事固定下来:哪些状态算等待、计时从哪个时间戳开始到哪个时间戳结束、分母按工作项数还是流转次数。本文按评估目标、指标范围、字段规则、计算步骤、复算示例和解读限制的顺序,给出一套可复算的口径写法,并说明退回重入、并行状态、缺失时间戳等情况的处理规则。
要点总览(TL;DR)
- 等待时间口径先固定三要素:哪些状态算等待、计时从哪个时间戳到哪个时间戳、分母按工作项数还是流转次数。
- 按工作项数平均反映单件等待负担,按流转次数平均反映单次交接效率,两者数值与解读不同,不能混在同一趋势图里比较。
- 退回重入建议每次进入等待态都开区间并累加,并行状态取最长区间只计一次,缺失时间戳标记为不可计算而不填补。
- 口径验证用同一批数据抽样复算,随机抽取不少于20条工作项由第二人独立计算,差异逐条归因到规则条款。
- 等待时间提供瓶颈线索,不设通用达标线,也不直接作为个人考核依据;口径变更后新旧周期数据需标注版本,不直接连成趋势线。
评估目标:等待时间要回答哪个瓶颈问题
等待时间首先是一个定位流动瓶颈的线索指标,用来回答“工作项在哪些环节停下来、停了多久、积压集中在哪一段”。它适合作为流程改进的输入,不适合直接折算成个人工作量或绩效评分。把用途写进口径文档,可以避免后续因为考核压力导致状态填写失真。
评估对象需要在三个层次中选定一个,不同层次的口径不能混用:
- 工作项层:单个需求、任务或缺陷从进入到交付累计等待多久,适合分析个体负担和长尾。
- 环节层:某一状态(如待评审、待测试、待发布)上的等待总量和平均停留,适合定位瓶颈环节。
- 团队层:统计周期内团队全部工作项的等待时长与占比,适合观察整体流动趋势。
结论的使用场景应限定为流程复盘、瓶颈排序和改进效果对比。以下用途不写入本次口径:开发者主观体验与协作感受的测量、单个项目的排期纠偏、跨团队绩效排名。评估目标说明建议包含三行内容:评估对象(工作项/环节/团队)、要回答的问题(哪段等待最长、是否在收敛)、用途边界(用于改进线索,不用于个人考核)。
指标与范围:等待时长、等待占比与分母选择
基础指标有两个。等待时长衡量“停了多久”,等待占比衡量“等待在总周期中占多大比重”。两者配合使用,可以区分“周期长是因为做得慢”和“周期长是因为等得久”。
| 指标 | 计算方式 | 单位 | 适用判断 |
|---|---|---|---|
| 工作项等待时长 | 该工作项各等待区间时长之和 | 工作小时或自然日 | 单件负担、长尾识别 |
| 平均等待时长 | 等待时长合计 ÷ 分母 | 小时/项 或 小时/次 | 整体水平与趋势 |
| 等待占比 | 等待时长 ÷ 同一工作项从进入到交付的总时长 | 百分比 | 等待在周期中的权重 |
| 环节等待总量 | 某状态上所有等待区间时长之和 | 小时 | 瓶颈环节排序 |
分母的选择直接决定平均值含义,必须在口径中写明且全篇统一。按工作项数作分母,得到“平均每个工作项等待多久”,反映单件负担;按流转次数作分母,得到“平均每次流转等待多久”,反映单次交接的效率。两者数值和解读都不同,不能放在同一张趋势图里比较。等待占比的分母是工作项自身总周期,不是统计周期总时长,这一点也要写清楚,否则跨周期对比会失真。
统计范围需要逐项界定:纳入哪些工作项类型(如需求、任务、缺陷,或只取需求)、纳入哪些等待状态(如待评审、待开发、待测试、待发布)、统计周期按创建时间还是完成时间截取。建议把范围写成一张界定表,纳入与排除各列一栏,例如排除已取消、重复关闭的工作项,排除统计周期开始前已进入等待且无法取得进入时间戳的记录。
数据口径:时间戳、状态与缺失值规则
等待时间的计算依赖状态流转记录,每条记录至少需要:工作项标识、原状态、新状态、变更时间、操作人。等待区间由“进入等待态”的变更时间和“离开等待态”的变更时间配对构成,因此字段层面要确认每个状态变更都有独立时间戳,而不是只保留工作项的最后更新时间。
| 规则项 | 建议写法 | 需在口径中注明 |
|---|---|---|
| 计时单位 | 按工作小时计时,扣除周末与法定节假日 | 工作日历版本、适用时区 |
| 跨天跨周 | 区间跨越非工作时间时按日历折算 | 折算方法,避免自然日与工作小时混算 |
| 退回重入 | 退回后再次进入同一等待态,重新开设计时区间并累加 | 是否合并为一段、是否单独标记退回次数 |
| 并行状态 | 同一工作项同时处于多个等待态时,取最长区间计入,不重复累加 | 并行状态的识别方式 |
| 缺失时间戳 | 标记为“不可计算”并单独计数,不按零或均值填补 | 不可计算记录的占比阈值 |
退回重入是最容易产生分歧的规则。一个需求评审未通过退回开发,再次提交评审,第二次等待是否计入、计几次,需要在口径中一次说清。推荐做法是每次进入等待态都开一个区间并全部累加,同时保留退回次数作为辅助字段,这样既能反映真实等待负担,也能看出返工频率。并行状态则相反,同一时段只应计一次,取最长等待区间,避免时长被重复放大。
缺失时间戳的处理原则是“不猜”。历史数据迁移、手工改状态、系统切换都可能造成时间戳缺失,这类记录应标记为不可计算并单独统计数量。当不可计算记录占比超过约定阈值(例如10%)时,该周期的结论只作参考,需在报告中注明。
计算与评估步骤:从原始记录到等待结论
计算流程按以下步骤执行,每一步都产出可核对的中间结果:
- 抽取流转记录:按统计周期和范围界定表,导出纳入工作项的全部状态变更记录,保留工作项标识、原状态、新状态、变更时间。
- 标记等待态:按预先定义的状态清单,把每条记录标记为“进入等待”“离开等待”或“与等待无关”。
- 配对区间:同一工作项内,按时间顺序把进入与离开配对成等待区间;未闭合的区间以统计截止时间或交付时间作为终点,并标记为“未闭合”。
- 折算时长:按工作日历把每个区间换算为工作小时,处理跨天跨周。
- 按工作项聚合:单个工作项等待时长 = Σ各等待区间时长;等待占比 = 等待时长 ÷ 该工作项从进入到交付的总时长。
- 计算汇总值:平均等待时长 = 等待时长合计 ÷ 分母(工作项数或流转次数,二选一并注明);环节等待总量按状态分组求和。
- 抽样复算:随机抽取不少于20条工作项,由第二人按同一规则独立计算,比对差异;差异记录逐条归因到规则条款。
公式写法建议统一为:平均等待时长(小时/项)= 纳入工作项的等待时长合计(工作小时)÷ 纳入工作项数(项)。分母为零时(统计周期内无符合条件的工作项),结果记为“不适用”,不写0,也不参与趋势对比。样本量过少时(例如少于30项),只报告明细和区间,不发布平均值结论。
口径落地后,等待区间来自工作项的状态流转记录,这些记录需要被完整保留并可查询。在 ONES 中,工作项的状态变更会形成流转记录,团队可以据此核对每个等待区间的起止时间;把等待态清单、计时单位和分母规则写进度量说明,再按同一批数据复算,口径才具备可交接性。
例子:一个需求从进入到交付的等待时间复算
以下为演示情景,数据为虚构,用于说明计算过程。某需求于周一10:00创建,状态时间线如下(按工作小时计,每日按8小时、周末不计):
| 状态区间 | 起止时间 | 时长(工作小时) | 是否等待态 |
|---|---|---|---|
| 待评审 | 周一10:00 — 周一14:00 | 4 | 是 |
| 开发中 | 周一14:00 — 周三11:00 | 13 | 否 |
| 待测试 | 周三11:00 — 周四9:00 | 6 | 是 |
| 测试中(评审退回后重入待测试) | 周四9:00 — 周四15:00 | 6 | 否 |
| 待测试(第二次) | 周四15:00 — 周五10:00 | 3 | 是 |
| 待发布 | 周五10:00 — 周五14:00 | 4 | 是 |
按“每次进入等待态都累加”的口径:等待时长 = 4 + 6 + 3 + 4 = 17 工作小时;总周期 = 4 + 13 + 6 + 6 + 3 + 4 = 36 工作小时;等待占比 = 17 ÷ 36 ≈ 47.2%。
若改用“退回后合并为一段等待”的口径,两次待测试合并为从周三11:00到周五10:00的连续等待,等待时长变为 4 + 14 + 4 = 22 工作小时,占比约61.1%。两种口径差异明显,说明退回重入规则必须在统计前定死。若分母改为流转次数(本例等待区间4次),平均每次流转等待为 17 ÷ 4 = 4.25 工作小时,与按工作项计的17小时/项含义完全不同,报告中需注明所用分母。
解读与限制:等待时间能说明什么、不能说明什么
等待时间能说明的是:工作项在哪些状态上停留较久、等待在总周期中占多大比重、某次流程调整后等待是否收敛。它提供的是瓶颈线索,不是因果结论。等待时间长可能来自审批资源不足,也可能来自工作项本身依赖外部交付、优先级被临时调整,需要结合环节分布和退回次数进一步判断。
解读时需要守住几条限制:
- 不设通用达标线:不同工作项类型、不同团队的外部依赖差异很大,等待占比多少算合理需要结合自身历史基线判断,不套用统一阈值。
- 分母为零与样本过少:无符合条件的工作项时结果记为不适用;样本量过少时只报明细,不发布平均值。
- 数据不可比:统计范围、工作日历、退回规则任一变更后,新旧周期数据不能直接连成趋势线,需在变更点标注口径版本。
- 不替代其他主题:开发者主观体验与协作感受的测量属于开发者体验范畴,单个项目的进度纠偏属于项目进度管理范畴,均不在本口径的结论范围内。
把上述规则连同公式、单位、分母和口径版本号写成一页说明,附在每次统计报告首页,等待时间才是一个可复算、可解释、可交接的指标。
常见问题
统计周期内没有任何符合条件的工作项,等待时间该怎么报?
分母为零时,平均等待时长记为“不适用”,不写0,也不参与趋势对比。等待占比同样不计算。报告中说明该周期纳入工作项数为零及原因,例如统计范围过窄或周期过短,再决定是否调整范围后重新统计。
工作项在统计周期开始前就进入了等待态,进入时间戳取不到怎么办?
这类记录按缺失时间戳处理,标记为“不可计算”并单独计数,不按零或均值填补。如果不可计算记录占比超过约定阈值(例如10%),该周期的结论只作参考,需在报告中注明。也可以在口径中约定:只统计在周期内进入等待态的工作项,避免跨周期截断带来的偏差。
退回重入的等待到底算一次还是算多次,团队意见不统一怎么定?
两种口径都能用,关键是统计前定死并全篇统一。每次进入等待态都累加,能反映真实等待负担,同时保留退回次数作为辅助字段,可以看出返工频率;合并为一段连续等待,则更接近“这个环节整体卡了多久”的视角。建议默认采用累加口径,并在口径文档中写明退回次数单独统计,避免两拨人各算各的。
口径中途调整了工作日历或统计范围,历史数据还能直接对比吗?
不能直接连成趋势线。统计范围、工作日历、退回规则任一变更,都会改变同一批数据的计算结果。建议给口径编版本号,在变更点标注版本,新旧周期分段呈现;需要跨版本对比时,用新口径回溯重算历史数据,并说明重算范围。
等待时间能不能直接用来评价某个环节或某个人效率高低?
不建议。等待时间长可能来自审批资源不足,也可能来自工作项依赖外部交付、优先级被临时调整,指标本身不区分原因。它适合作为流程复盘和瓶颈排序的线索,配合环节分布、退回次数一起看。用于个人考核容易导致状态填写失真,反而破坏数据质量。
