三点估算是一种在不确定条件下估算工作量的方法:对同一项工作分别给出最乐观值、最可能值和最悲观值,再按公式合成一个期望值,并用三个值的差距表达风险大小。它估算的是投入量,例如人时或人天,既不是实际工时记录,也不是团队产出指标。理解它的关键在于三个值的取值口径、两种常用合成公式,以及期望值在计划中的正确用法。
要点总览(TL;DR)
- 三点估算对同一项工作给出最乐观值、最可能值和最悲观值,再合成期望值,估算对象是投入量(人时、人天),不是日历工期或产出指标。
- 两种常用合成公式:三角分布 E=(O+M+P)/3,PERT 加权 E=(O+4M+P)/6;PERT 常用 σ=(P−O)/6 粗略表达不确定性。
- 三个值必须针对同一工作项、同一计量单位;范围无法描述时应先澄清需求再估算。
- 期望值是概率意义上的中心值,对外承诺需结合区间上限与缓冲;三值由一人随手填写容易失去表达不确定性的作用。
- 落地需要估算、评审、记录、回看形成闭环,用实际投入与估算值的偏差持续校准下一轮取值。
三点估算是什么:一句话定义与三个输入值
三点估算要求估算者对同一项工作给出三个数值,再合成一个用于计划的期望值。三个输入值的含义如下:
- 最乐观值(O,Optimistic):在一切顺利、没有返工和阻塞的情况下完成该项工作所需的投入量。它代表顺利情景,不代表理想化的最低数字。
- 最可能值(M,Most Likely):在正常条件下最常出现的投入量。它应当是估算者认为发生概率最高的那个值,而非三个数的算术中点。
- 最悲观值(P,Pessimistic):在遇到常见风险、需要返工或等待的情况下所需的投入量。它描述合理的最坏情况,不包含极端灾难情景。
三个值必须针对同一个工作项、使用同一种计量单位。如果O按人时填写、P按人天填写,或者三个值分别对应“开发部分”和“包含联调的整体”,合成结果就失去意义。估算对象是完成该项工作的投入量,例如某人投入多少小时;日历工期取决于投入人数、并行程度和等待时间,需要另行换算。
三点估算的边界:它估什么、不估什么
三点估算的输出是一个投入量区间及其期望值,用于计划编制和风险沟通。它不直接给出交付日期,也不替代实际工时记录。明确边界可以避免把估算结果用在它不适用的地方。
| 维度 | 三点估算的定位 | 需要区分的相邻活动 |
|---|---|---|
| 估算对象 | 完成工作项所需的投入量(人时、人天) | 日历工期:需结合投入人数、并行度与等待时间换算 |
| 时间位置 | 发生在工作开始之前,用于计划 | 实际工时填报:发生在工作过程中或之后,记录真实消耗 |
| 用途 | 表达单项工作的不确定性与期望投入 | 团队产出与产能指标:衡量一段时间内的交付结果,属于另一类度量 |
| 前提条件 | 工作范围可以描述,完成标准大致清楚 | 需求尚未澄清、范围无法描述时,应先澄清范围再估算 |
当需求本身还在讨论、验收标准无法描述时,三个值只能凭感觉填写,合成出的期望值看似精确却缺乏依据。这类情形应先做需求澄清或技术预研,把工作拆到可以描述范围的程度,再进入三点估算。此外,三点估算给出的是单项工作的分布信息,汇总多个工作项时需要考虑它们之间的依赖关系,简单相加会低估整体不确定性。
期望值与不确定性的计算机制
三个值合成期望值有两种常用方式,区别在于对最可能值的加权程度。
| 方法 | 期望值公式 | 特点 |
|---|---|---|
| 三角分布(简单平均) | E = (O + M + P) / 3 | 三个值权重相同,计算直观,适合快速估算或数据较少时使用 |
| 贝塔分布(PERT 加权) | E = (O + 4M + P) / 6 | 给最可能值更高权重,期望值更靠近M,适合对最可能情景较有把握时使用 |
不确定性用三个值的差距表达。PERT 方法常用标准差近似式 σ = (P − O) / 6,其含义是把乐观与悲观之间的跨度视为约六个标准差,跨度越大,单项工作的估算区间越宽。这个近似式假设三值大致对称分布,当悲观侧明显更长时,它只能作为粗略参考。
实际操作通常按以下步骤进行:
- 把待估算的范围拆成可以独立描述的工作项,每项有明确的完成标准。
- 对每个工作项分别给出O、M、P,统一计量单位,并记录取值依据。
- 按选定公式计算每项的期望值,同时记录(P − O)作为该项不确定性的直观指标。
- 汇总各工作项期望值得到整体估算,对不确定性大的工作项单独标注,供评审讨论。
三点估算与单点估算、类比估算、储备分析的区别
三点估算在估算方法谱系中的位置,可以通过与相邻概念的对照来理解。
| 概念 | 与三点估算的关系 | 关键差异 |
|---|---|---|
| 单点估算 | 三点估算的简化替代 | 单点估算只给一个数,速度快但不显式表达不确定性;三点估算用区间和期望值把风险摆到台面上 |
| 类比估算 | 可以组合使用 | 类比估算参照历史相似工作的数据给出数值,这些数值可以作为三点估算中M的起点,再补充O和P |
| 参数估算 | 可以组合使用 | 参数估算用单位工作量乘以数量得出结果,三点估算可对单位工作量或总量分别取三值 |
| 应急储备与缓冲 | 用途不同,可配合 | 三点估算是估算方法,产出期望值与区间;应急储备和缓冲是应对手段,是在估算结果之上预留的余量 |
| 德尔菲等群体判断方法 | 可以组合使用 | 德尔菲解决“谁来估、如何收敛意见”的问题;三点估算解决“如何把不确定性表达为一个数”的问题,群体方法产出的共识值可以直接作为三值输入 |
这些方法之间是互补关系。实践中常见的组合是:用类比或参数方法得到基准值,用群体判断收敛分歧,再用三点估算把分歧转化为区间,最后根据区间宽度决定是否设置缓冲。
一个完整算例与三类常见误解
假设某工作项为“完成订单导出接口的开发与自测”,估算者给出O = 4人时、M = 6人时、P = 14人时。两种方法的计算如下:
- 三角分布:E = (4 + 6 + 14) / 3 = 8 人时。
- PERT 加权:E = (4 + 4×6 + 14) / 6 = 42 / 6 = 7 人时。
- 标准差近似:σ = (14 − 4) / 6 ≈ 1.67 人时。
两种方法的结果相差1人时,原因是PERT给最可能值更高权重。悲观值与乐观值相差10人时,说明该项工作的不确定性较大,评审时应关注悲观情景的成因,例如是否依赖外部接口联调。
围绕这个算例,有三类常见误解值得纠正:
- 把三个值当成三个方案或三次报价。三个值描述的是同一项工作在不同条件下的投入,不是让团队在三个做法之间选择,也不是向客户提供三档价格。合成后的期望值才是用于计划的数值。
- 把期望值当作承诺值直接对外交付。期望值是概率意义上的中心值,实际投入高于或低于它都属正常。对外承诺应结合区间上限和缓冲来确定,并在沟通中说明估算的不确定性。
- 三值由同一人随手填写,未做分解与校准。一个人凭印象填写的三个值容易趋同,失去表达不确定性的作用。更可靠的做法是先分解工作项,由熟悉该类工作的人给出取值依据,并用历史数据校准。
校准依赖回看:工作完成后,把实际投入与当时的期望值、悲观值对比,统计偏差方向和幅度。如果实际值长期高于悲观值,说明三值整体偏乐观;如果实际值频繁落在期望值附近而区间很宽,说明三值跨度设置过大。这些偏差记录是下一轮估算最直接的参考。
把三点估算落到团队协作流程中
三点估算要产生持续价值,需要嵌入团队的日常工作流:估算输入、评审校验、记录留存、结果回看四个环节形成闭环。
第一步是准备输入。待估算的工作项应先完成拆分,每项有可描述的范围和完成标准,这是三值有意义的前提。第二步是角色分工:提出人对熟悉的工作项给出O、M、P及取值依据,评审人校验三个值是否针对同一范围、同一单位,并检查悲观值是否覆盖了已知风险。第三步是记录与状态流转:估算值随工作项保存,评审通过后进入计划,评审意见与取值依据一并留存,便于后续追溯。第四步是结果回看:工作完成后,将实际投入与估算值对比,偏差记录进入团队的历史参考,用于下一轮估算的校准。
在工具承载层面,ONES 的工作项支持自定义字段,可以把最乐观值、最可能值、最悲观值和期望值作为字段随工作项保存;评审环节可以通过工作流状态流转,让估算在进入计划前经过校验;实际投入的记录与估算值在同一工作项下留存,便于事后对比。这样,估算不再停留在表格或个人笔记里,而是成为工作项生命周期的一部分,回看时有据可查。
需要说明的是,工具承载的是记录与流转,估算质量仍取决于取值依据和历史校准。团队在推行三点估算时,可以先从不确定性较高的少数工作项开始,积累偏差数据后再扩大范围,避免一开始就对所有工作项套用三值而流于形式。
常见问题
三个值由不同的人给出,可以合成吗?
可以,但需要先对齐口径。不同人给出的O、M、P如果针对同一工作项、同一计量单位,并且对“顺利”“正常”“最坏”的理解一致,合成结果才有意义。实际操作中,更稳妥的做法是先由熟悉该类工作的人分别给出三值,再在评审中讨论差异来源,例如对返工概率或外部依赖的判断不同,收敛后再计算。若分歧集中在最悲观值,说明团队对该项工作的风险认知尚未统一,此时直接取平均会掩盖问题。
期望值算出来是7人时,排期时可以直接按7人时安排吗?
可以作为计划基准,但要同时看区间。期望值是概率意义上的中心值,实际投入高于或低于它都属正常。排期时建议结合悲观值和标准差判断风险:如果(P−O)跨度较大,按期望值安排容易在悲观情景下被动。常见做法是以期望值作为基准,对不确定性大的工作项单独预留缓冲,并在沟通中说明估算区间。对外承诺时,用区间上限加缓冲比直接引用期望值更稳妥。
工作项拆得很细时,逐项做三点估算成本太高,怎么办?
可以分层处理。对不确定性高、影响大的工作项做完整三点估算;对重复性强、历史数据充分的工作项,用类比或参数方法给出单点值即可。另一种做法是先按较大的工作项估算,进入执行阶段再拆分细化,避免在范围尚未稳定时投入过多估算精力。判断标准是这项工作项的偏差会不会影响整体计划:会影响的值得做三值,不会影响的用单点估算加统一缓冲更经济。
历史数据很少的新团队,怎么校准三点估算?
先从记录做起。即使没有历史数据,也可以在每个工作项完成后记录实际投入,并与当时的期望值、悲观值对比,积累几个迭代后就能看出偏差方向。初期可以适当放宽悲观值,把已知风险显式写进取值依据,而不是靠感觉压缩区间。团队还可以在评审时请不同角色分别给出三值,用分歧大小判断认知是否一致。随着偏差记录增多,再逐步收紧区间,让估算贴近实际。
三点估算的结果需要向客户或上级展示吗?展示到什么程度?
建议展示期望值和区间,并说明不确定性来源,而不是只给一个数。只给期望值会让对方误以为这是确定承诺;只给悲观值又容易造成过度保守的印象。较清晰的表达是:基准投入为期望值,区间范围从乐观到悲观,主要风险点是什么,缓冲如何设置。这样对方能理解数字背后的假设,也便于在范围或时间变化时重新讨论。展示时附上取值依据,比单纯报数更有说服力。
