工时估算要能用于排期,前提是先把口径统一:估的是投入工作量,用统一的单位和日历表达,并以区间呈现不确定性。本文按“定口径—拆解与汇总—角色分工—示例—偏差复核—完成检查”的顺序,给出可直接套用的步骤、估算表字段和检查清单,范围聚焦事前投入预估,实际工时填报与产出指标不在本文展开。
要点总览(TL;DR)
- 先写估算口径说明:统一人时或人日、工作日历、并行系数和角色口径,并明确当前阶段用区间还是点值。
- 按五步推进:拆到可判断完成状态的任务、指定责任人与参照依据、给出区间与不确定性、单独汇总附加投入、形成带版本和假设的估算表。
- 分工上执行者负责单项估算,技术负责人校准一致性,项目经理确认范围与附加投入,评审角色核对假设。
- 用实际投入做偏差复核,把偏差归入拆解粒度、假设错误、范围变化三类,再修正估算基线并保留历史版本。
- 交付排期前逐项核对任务粒度、假设记录、附加投入、责任人与版本追溯,全部通过再进入排期。
工时估算先定口径:估什么、按什么单位估
估算开始前,团队需要先写下一份口径说明,明确估算对象、单位、日历和精度要求。口径不统一,后续数字无法汇总,也无法与历史数据比较。
估算对象:投入工作量
工时估算的对象是完成某项任务所需的投入工作量,通常以人时或人日表达。它回答“这件事需要多少人的多少时间”,与实际工时填报回答的“已经花了多少时间”是两个不同的问题。估算阶段不追求与未来实际值完全一致,而是给出一个有依据、可复核的预期区间。把两者混在一起,容易让估算者为了“好看”而压低数字,也会让后续偏差分析失去基准。
基础假设:单位、日历与并行系数
口径说明至少包含以下内容,并作为估算表的固定附注:
- 估算单位:统一用人时或人日,全表不混用;若需要换算,写明换算规则,例如1人日按8人时计。
- 工作日历:明确每周工作日、节假日、团队集中会议时间是否已从可用工时中扣除。
- 并行系数:一个人同时承担多项任务时,有效投入会低于名义工时,需要说明是否按一定比例折算,以及折算依据。
- 角色口径:估算值对应哪个角色投入,例如开发、测试、设计分别估算,避免用“平均人力”笼统覆盖。
精度随阶段变化
估算精度应与信息充分程度匹配。需求刚明确、方案未定时,用区间估算并标注上下限和主要不确定性来源;进入详细设计或开发阶段、任务边界清晰后,可以收敛为点值或窄区间。早期强行给出精确点值,会让估算表看起来整齐,却掩盖了真实风险。口径说明中应写明当前阶段采用的精度要求,以及从区间收敛到点值的触发条件。
本节交付物是一份估算口径说明,包含单位、日历、精度要求和假设清单,作为估算表的首页或附页。
核心步骤:从任务拆解到估算汇总
口径确定后,按以下五步推进,每一步都有明确的输入、动作和输出,完成标志是产出可评审的估算表。
第一步:拆解到可判断完成状态的任务粒度
输入:需求说明、设计方案或用户故事。动作:把工作拆成若干任务,每项任务应能回答“做到什么程度算完成”。常见判断标准是单项任务投入大致落在半天到三天之间,且完成状态可以用一个明确的结果描述,例如“接口联调通过并提交测试”。输出:任务清单,每项任务带完成定义。完成标志:任意一项任务都能由执行者独立判断是否完成,不需要再拆分才能估算。
第二步:指定估算责任人与参照依据
输入:任务清单。动作:为每项任务指定最熟悉该工作的执行者作为估算责任人,并要求其写明参照依据,例如类似历史任务的实际投入、技术方案中的关键步骤、外部依赖的等待时间。输出:任务与责任人、参照依据的对应关系。完成标志:每项任务都有责任人和至少一条参照依据,没有“凭感觉”的空项。
第三步:用区间估算并记录不确定性来源
输入:任务、责任人、参照依据。动作:责任人给出乐观值、最可能值和保守值,形成区间,并在备注中写明不确定性来源,例如技术方案未验证、依赖第三方接口、需求细节待确认。输出:每项任务的区间估算与不确定性说明。完成标志:区间上下限有解释,不确定性来源可被评审角色核对。
第四步:汇总直接投入与附加投入
输入:各项任务的区间估算。动作:先汇总直接投入,再单独列出协调、评审、返工、环境准备等附加投入。附加投入可以按直接投入的一定比例估算,也可以按具体活动逐项列出,关键是单独成行、注明估算方式,避免被隐含在任务值里。输出:直接投入小计、附加投入小计和总计。完成标志:附加投入有独立条目和计算说明,汇总结果可追溯到单项任务。
第五步:形成估算表并标注版本与假设
输入:汇总结果与口径说明。动作:把任务、责任人、区间、假设、附加投入和总计整理成一张表,标注版本号、估算日期、适用范围和主要假设。输出:带假设与区间的工时估算表。完成标志:表格可被未参与估算的人读懂,并能据此判断排期风险。
估算表需要落到具体任务上,才能被后续排期引用。在ONES中,可以把拆解后的任务作为工作项维护,将估算值、责任人和假设记录在工作项字段与说明中,使估算结果与任务状态、迭代计划保持同一份数据来源,减少表格与系统之间的重复维护。
角色与交付物分工
估算责任需要落到具体角色,避免出现“大家一起估、没人对数字负责”的情况。下表给出常见分工,团队可按规模调整,但每项交付物都应有明确归属。
| 角色 | 主要职责 | 交付物 |
|---|---|---|
| 任务执行者 | 对本项任务给出区间估算,说明参照依据和不确定性来源 | 单项任务估算值与假设说明 |
| 技术负责人或组长 | 校准同类任务的口径一致性,检查区间是否合理,负责汇总 | 校准记录与汇总结果 |
| 项目经理 | 确认范围、工作日历和附加投入是否纳入,组织评审 | 范围说明、附加投入条目、评审结论 |
| 评审角色 | 核对假设是否成立,确认估算表可用于排期 | 评审意见与确认记录 |
执行者负责“估得有理”,技术负责人负责“估得一致”,项目经理负责“估得完整”,评审角色负责“估得可信”。四类职责分开,偏差复核时才能判断问题出在单项估算、汇总口径还是范围变化。
示例:一个需求从拆解到估算表成型
以下为演示情景,用于说明估算表的填写方式,数字仅作示例。
假设一个需求是“为订单列表增加按状态筛选功能”,拆解为四项任务:后端筛选接口开发、前端筛选组件开发、联调与自测、测试用例编写与执行。执行者给出的区间估算如下:
| 任务 | 责任人 | 乐观值(人时) | 最可能值(人时) | 保守值(人时) | 假设与不确定性 |
|---|---|---|---|---|---|
| 后端筛选接口开发 | 后端开发A | 6 | 8 | 12 | 沿用现有查询框架;若需新增索引则取保守值 |
| 前端筛选组件开发 | 前端开发B | 4 | 6 | 9 | 组件库已有类似控件;交互细节待确认 |
| 联调与自测 | 后端开发A | 2 | 3 | 5 | 依赖测试环境可用 |
| 测试用例编写与执行 | 测试C | 3 | 4 | 6 | 筛选组合较多,边界用例数量待定 |
直接投入按最可能值汇总为21人时,区间为15至32人时。附加投入单独列出:需求评审与方案讨论2人时,代码评审2人时,按直接投入10%预留返工约2人时,合计附加投入约6人时。总计最可能值约27人时,区间约21至38人时。
估算表还需包含版本号、估算日期、适用迭代和汇总说明。不确定性说明应写明:区间上限主要来自后端索引变更和前端交互确认两项,若这两项在开发前得到澄清,区间可收窄。这样一份表既能支撑排期,也能让评审角色快速判断风险点。
偏差复核与估算基线修正
估算完成后,需要在任务结束或迭代结束时回看实际投入,与估算值比对,并把结论反馈到下一轮估算。复核的目的在于修正估算方法和基线,而非追究个人。
复核时点与比对口径
建议在任务完成时做单项复核,在迭代结束时做汇总复核。比对时使用与估算一致的口径:同一单位、同一日历、同一角色范围。若实际数据包含估算时未纳入的协调或返工时间,应先按口径拆分,再与对应条目比较,避免把口径差异误判为估算偏差。
偏差原因分类
把偏差归入以下类别,便于采取不同改进动作:
- 拆解粒度问题:任务过大导致区间过宽,或遗漏了必要子任务。改进方式是调整拆解标准。
- 假设错误:技术方案、依赖可用性或交互细节的假设与实际不符。改进方式是在估算表中更显式地记录假设,并在开发前验证关键假设。
- 范围变化:需求在开发中发生变更。此类偏差应记录为范围变更,不直接用于修正估算基线。
修正估算基线
对同类任务,可以用多次复核后的实际值中位数替换原有参照值,形成新的估算基线;对系统性偏低的类别,例如联调时间普遍被低估,可在附加投入中调整预留比例。修正应记录版本和依据,保留历史基线以便追溯,避免每次复核后直接覆盖旧数据。
与工时填报数据的衔接边界
偏差复核使用实际工时数据作为输入,但复核关注的是估算方法与基线的改进,实际填报的审核流程、填报规范属于相邻主题,本文不展开。两者衔接的关键是口径一致:填报单位、日历和角色范围与估算口径对齐,复核结论才有可比性。
完成检查:估算表可用性核对
在把估算表交给排期使用前,逐项核对以下检查项。全部通过,说明估算表达到可用状态;存在未通过项,应先补充再进入排期。
| 检查项 | 核对标准 | 通过标志 |
|---|---|---|
| 任务粒度与完成状态 | 每项任务都有明确的完成定义,无需再拆分即可估算 | 执行者可独立判断任务是否完成 |
| 假设与不确定性 | 每项任务记录参照依据和不确定性来源,区间上下限有解释 | 评审角色可核对假设是否成立 |
| 附加投入 | 协调、评审、返工等投入单独列项并注明估算方式 | 总计可拆分为直接投入与附加投入 |
| 责任人与复核节点 | 每项任务有估算责任人,估算表有评审确认记录 | 责任归属清晰,评审结论可查 |
| 版本与变更 | 估算表标注版本号、日期和适用范围,变更留有记录 | 可追溯任一版本的口径与假设 |
检查通过后,估算表即可作为排期输入。后续若范围或关键假设发生变化,应更新版本并重新核对上述检查项,使估算表始终与当前计划保持一致。
常见问题
估算时用区间还是直接给一个数字?
取决于信息充分程度。需求刚明确、方案未验证时,用乐观值、最可能值和保守值构成区间,并写明不确定性来源;任务边界清晰、方案确定后,可以收敛为点值或窄区间。口径说明中应写明当前阶段的精度要求,以及从区间收敛到点值的触发条件,避免早期用精确数字掩盖风险。
附加投入按比例预留还是逐项列出?
两种方式都可以,关键是单独成行并注明估算方式。协调、评审、返工、环境准备等活动如果比较稳定,可以按直接投入的一定比例预留;如果活动差异大或金额敏感,逐项列出更便于复核。无论哪种方式,附加投入都应能从总计中拆分出来,方便偏差复核时判断问题出在直接投入还是附加环节。
估算值和实际填报对不上,应该先改哪个?
先确认口径是否一致:单位、工作日历、角色范围是否与估算时相同。若实际数据包含估算时未纳入的协调或返工时间,应先按口径拆分再比较。口径一致后,再把偏差归入拆解粒度、假设错误或范围变化三类:前两类用于修正估算方法和基线,范围变化应记录为变更,不直接用于调整基线。
估算表需要多久复核一次?
建议在任务完成时做单项复核,在迭代结束时做汇总复核。单项复核用于校准同类任务的参照值,汇总复核用于发现系统性偏差,例如某类联调时间普遍被低估。复核频率应与迭代节奏匹配,不必对每项任务都做深度分析,重点是让修正结论进入下一轮估算的基线。
估算结果怎么和任务管理衔接?
估算表需要落到具体任务上才能被排期引用。可以把拆解后的任务作为工作项维护,将估算值、责任人和假设记录在工作项字段与说明中,使估算结果与任务状态、迭代计划使用同一份数据来源。在ONES中,ONES Project 支持需求、任务、迭代与缺陷管理,可作为承载估算结果的工具选项之一,具体字段配置按团队实际流程设置。
