estimate-calibrator

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Estimate Calibrator

估算校准器

Replaces single-point guesses with structured three-point estimates: decomposes work into atomic units, estimates best/likely/worst case for each, identifies unknowns and assumptions, calculates aggregate ranges using PERT, and assigns confidence levels with explicit rationale.
用结构化的三点估算替代单点猜测:将工作分解为原子单元,为每个单元估算最佳/最可能/最差情况,识别未知因素和假设条件,使用PERT计算总范围,并结合明确的理由分配置信度。

Reference Files

参考文件

FileContentsLoad When
references/estimation-methods.md
PERT formula, three-point estimation, Monte Carlo basicsAlways
references/unknown-categories.md
Technical, scope, external, and organizational uncertainty typesUnknown identification
references/calibration-tips.md
Cognitive biases in estimation, historical calibration, buffer strategiesAlways
references/sizing-heuristics.md
Common task size patterns, complexity indicators, reference class dataQuick sizing needed
文件路径内容加载时机
references/estimation-methods.md
PERT公式、三点估算、蒙特卡洛基础始终加载
references/unknown-categories.md
技术、范围、外部和组织类别的不确定性类型识别未知因素时加载
references/calibration-tips.md
估算中的认知偏差、历史校准、缓冲策略始终加载
references/sizing-heuristics.md
常见任务规模模式、复杂度指标、参考类别数据需要快速估算时加载

Prerequisites

前置条件

  • Work item description (feature, task, project)
  • Decomposed tasks (or use task-decomposer skill first)
  • Context: team familiarity, tech stack, existing codebase
  • 工作项描述(功能、任务、项目)
  • 已分解的任务(或先使用task-decomposer工具)
  • 上下文信息:团队熟悉度、技术栈、现有代码库

Workflow

工作流程

Phase 1: Decompose Work

阶段1:工作分解

If the work item is not already decomposed into atomic units:
  1. Break into tasks — Each task should be estimable independently.
  2. Right granularity — Tasks should be 1 hour to 3 days. Larger tasks have higher uncertainty; break them down further.
  3. Identify dependencies — Tasks on the critical path determine the minimum duration.
如果工作项尚未分解为原子单元:
  1. 拆分为任务 — 每个任务应可独立估算。
  2. 合适的粒度 — 任务时长应在1小时到3天之间。较大的任务不确定性更高,需进一步拆分。
  3. 识别依赖关系 — 关键路径上的任务决定了最短工期。

Phase 2: Three-Point Estimate

阶段2:三点估算

For each task, estimate three scenarios:
ScenarioDefinitionMindset
Best caseEverything goes right. No surprises."If I've done this exact thing before"
Likely caseNormal friction. Some minor obstacles."Realistic expectation with typical setbacks"
Worst caseSignificant problems. Not catastrophic."Murphy's law but not a disaster"
Key rule: Worst case is NOT "everything goes wrong." It's the realistic bad scenario (90th percentile), not the apocalyptic one (99th percentile).
针对每个任务,估算三种场景:
场景定义思考方式
最佳情况一切顺利,无意外。“如果我之前做过完全相同的事情”
最可能情况存在正常阻力,有一些小障碍。“考虑典型挫折后的现实预期”
最差情况出现重大问题,但并非灾难性的。“墨菲定律但不是毁灭性灾难”
核心规则: 最差情况并非“一切都出错”。它是符合现实的糟糕场景(第90百分位),而非极端灾难性场景(第99百分位)。

Phase 3: Identify Unknowns

阶段3:识别未知因素

Categorize unknowns that affect estimates:
CategoryExampleImpact
Technical"Never used this library before"Likely case inflated, worst case much higher
Scope"Requirements may change"All estimates may shift
External"Depends on API access from partner"Blocking risk — could delay entirely
Integration"Haven't tested with production data"Hidden complexity at integration
Organizational"Need design approval"Calendar time, not effort time
对影响估算的未知因素进行分类:
类别示例影响
技术类“从未使用过这个库”最可能情况的估算值会偏高,最差情况的估算值会大幅升高
范围类“需求可能会变更”所有估算值都可能发生变动
外部类“依赖合作伙伴的API访问权限”阻塞风险 — 可能导致整体延迟
集成类“尚未在生产数据中测试”集成阶段可能存在隐藏复杂度
组织类“需要设计审批”占用日历时间,而非工作时长

Phase 4: Calculate Ranges

阶段4:计算范围

For individual tasks, use the PERT formula:
text
Expected = (Best + 4 × Likely + Worst) / 6
Std Dev = (Worst - Best) / 6
For aggregate (project) estimates:
  • Sum of expected values for total expected duration
  • Root sum of squares of std devs for aggregate uncertainty
针对单个任务,使用PERT公式:
text
Expected = (Best + 4 × Likely + Worst) / 6
Std Dev = (Worst - Best) / 6
针对整体(项目)估算:
  • 总预期时长为各任务预期值之和
  • 整体不确定性为各任务标准差的平方和的平方根

Phase 5: Assign Confidence

阶段5:分配置信度

ConfidenceMeaningWhen
HighLikely case within ±20%Well-understood task, team has done it before
MediumLikely case within ±50%Some unknowns, moderate familiarity
LowLikely case within ±100% or moreSignificant unknowns, new technology
置信度含义适用场景
最可能情况的偏差在±20%以内任务已充分理解,团队有相关经验
最可能情况的偏差在±50%以内存在一些未知因素,团队有一定熟悉度
最可能情况的偏差在±100%或以上存在大量未知因素,使用新技术

Output Format

输出格式

text
undefined
text
undefined

Estimate: {Work Item}

Estimate: {Work Item}

Summary

Summary

ScenarioDuration
Best case{time}
Likely case{time}
Worst case{time}
PERT expected{time}
Confidence{High/Medium/Low}
ScenarioDuration
Best case{time}
Likely case{time}
Worst case{time}
PERT expected{time}
Confidence{High/Medium/Low}

Task-Level Estimates

Task-Level Estimates

#TaskBestLikelyWorstPERTUnknowns
1{task}{time}{time}{time}{time}{key unknown or "None"}
2{task}{time}{time}{time}{time}{key unknown}
Total{sum}{sum}{sum}{pert}
#TaskBestLikelyWorstPERTUnknowns
1{task}{time}{time}{time}{time}{key unknown or "None"}
2{task}{time}{time}{time}{time}{key unknown}
Total{sum}{sum}{sum}{pert}

Key Unknowns

Key Unknowns

#UnknownCategoryImpact on EstimateMitigation
1{unknown}{Technical/Scope/External}+{time} if realized{spike, prototype, early test}
#UnknownCategoryImpact on EstimateMitigation
1{unknown}{Technical/Scope/External}+{time} if realized{spike, prototype, early test}

Assumptions

Assumptions

  • {Assumption 1 — what must be true for this estimate to hold}
  • {Assumption 2}
  • {Assumption 1 — what must be true for this estimate to hold}
  • {Assumption 2}

Risk Factors

Risk Factors

  • {Risk}: If realized, adds {time}. Likelihood: {High/Medium/Low}.
  • {Risk}: If realized, adds {time}. Likelihood: {High/Medium/Low}.

Confidence Rationale

Confidence Rationale

{High/Medium/Low} because:
  • {Specific reason — e.g., "Team has built 3 similar features"}
  • {Specific reason — e.g., "External API is a new integration"}
{High/Medium/Low} because:
  • {Specific reason — e.g., "Team has built 3 similar features"}
  • {Specific reason — e.g., "External API is a new integration"}

Recommendation

Recommendation

{Commit to PERT expected with {X}% buffer, or spike the top unknown first.}
undefined
{Commit to PERT expected with {X}% buffer, or spike the top unknown first.}
undefined

Calibration Rules

校准规则

  1. Three points, not one. Single-point estimates are always wrong. Three points communicate uncertainty — the most important part of any estimate.
  2. Worst case is the 90th percentile, not the 99th. "Asteroid hits the office" is not a useful worst case. "The API documentation is wrong and we need to reverse-engineer the protocol" is realistic worst case.
  3. Unknowns inflate estimates more than known difficulty. A hard but well-understood task is more predictable than an easy but novel one.
  4. Estimates are not commitments. Communicate ranges, not deadlines. If stakeholders need a single number, give the PERT expected plus a buffer for confidence level.
  5. Spike unknowns early. If a single unknown dominates the estimate range, invest 1-2 days spiking it before estimating the rest.
  1. 用三点而非单点估算。单点估算永远不准确。三点估算能够传达不确定性——这是任何估算中最重要的部分。
  2. 最差情况是第90百分位,而非第99百分位。“小行星撞击办公室”不是有用的最差情况。“API文档错误,我们需要逆向工程协议”才是符合现实的最差情况。
  3. 未知因素比已知难度更会推高估算值。一项困难但已充分理解的任务比一项简单但新颖的任务更具可预测性。
  4. 估算不是承诺。传达范围而非截止日期。如果利益相关方需要单一数值,提供PERT预期值加上与置信度匹配的缓冲。
  5. 尽早排查未知因素。如果某个未知因素主导了估算范围,在估算其余部分之前投入1-2天时间进行排查。

Error Handling

错误处理

ProblemResolution
Work item not decomposedDecompose into 3-8 tasks first (or suggest task-decomposer skill).
No historical referenceEstimate relative to a known task: "This is about 2x the auth feature."
Stakeholder wants a single numberProvide PERT expected with buffer matching confidence level (High: +20%, Medium: +50%, Low: +100%).
Estimate seems too largeCheck for scope creep in task list. Remove non-essential tasks. Identify what can be deferred.
Team has never done this type of workMark confidence as Low. Recommend a spike before committing to an estimate.
问题解决方案
工作项未分解先将其拆分为3-8个任务(或建议使用task-decomposer工具)。
无历史参考相对于已知任务进行估算:“这项任务大约是认证功能的2倍。”
利益相关方想要单一数值提供PERT预期值加上与置信度匹配的缓冲(高:+20%,中:+50%,低:+100%)。
估算值看起来过大检查任务列表中是否存在范围蔓延。移除非必要任务。确定可推迟的内容。
团队从未做过此类工作将置信度标记为低。建议在承诺估算前先进行排查。

When NOT to Estimate

不适宜估算的场景

Push back if:
  • The work is exploratory (research, spikes) — timebox instead of estimating
  • Requirements are completely undefined — define scope first
  • The user wants precision (hours) for a large project — provide ranges, not false precision
  • The estimate will be used as a commitment without acknowledging uncertainty
在以下情况时应拒绝估算:
  • 工作具有探索性(研究、排查)—— 应设定时间盒而非估算
  • 需求完全未定义—— 先明确范围
  • 用户想要大型项目的精确估算(小时级)—— 提供范围,而非虚假的精确值
  • 估算将被用作承诺,却不承认不确定性