名称: 估算 描述: 估算技术,包括类比、参数化、三点估算和专家判断方法。为项目、功能和任务提供努力、成本、持续时间和复杂度估计。 允许工具: 读取, 全局, 搜索, 任务, 技能
估算
何时使用此技能
使用此技能当:
- 估算任务 - 处理估算技术,包括类比、参数化、三点估算和专家判断方法。为项目、功能和任务提供努力、成本、持续时间和复杂度估计
- 计划或设计 - 需要估算方法指导
- 最佳实践 - 希望遵循既定模式和标准
概述
系统性地使用已验证的估算技术估计努力、成本、持续时间和复杂度。支持类比、参数化、三点估算(PERT)和专家判断方法,用于项目、功能和任务。
什么是估算?
估算 是预测完成工作所需资源、时间和成本的过程。良好估算平衡:
- 准确性:接近实际结果的程度
- 精确性:估计的一致性
- 速度:产生估计所需时间
- 沟通:对不确定性的共享理解
估算 vs 承诺
| 概念 | 定义 | 用途 |
|---|---|---|
| 估算 | 基于当前知识的最佳猜测 | 计划、预测 |
| 承诺 | 按日期/成本交付的承诺 | 合同、截止日期 |
| 目标 | 期望达成的结果 | 目标、目的 |
关键原则:估算是带有不确定性的范围,而非单点保证。
估算技术
类比估算(自上而下)
基于类似过去工作进行估算:
| 步骤 | 行动 |
|---|---|
| 1 | 识别类似已完成项目/功能 |
| 2 | 检索实际努力/成本/持续时间 |
| 3 | 针对差异调整(复杂度、团队、技术) |
| 4 | 应用调整因子 |
公式:
新估算 = 历史实际值 × 调整因子
示例:
类似项目耗时200小时
新项目复杂度约高20%
估算 = 200 × 1.20 = 240小时
何时使用:早期阶段、细节有限、有历史数据的经验团队
准确性:+/- 25-50%(随良好历史数据提高)
参数化估算
使用统计关系进行估算:
| 元素 | 描述 |
|---|---|
| 工作单位 | 可度量元素(屏幕、API、表格) |
| 生产率率 | 来自历史数据的每单位努力 |
| 数量 | 需生产的单位数 |
公式:
估算 = 数量 × 生产率率
示例:
10个API端点 × 16小时/端点 = 160小时
常见生产率指标:
| 工作类型 | 指标 | 典型范围 |
|---|---|---|
| UI屏幕 | 小时/屏幕 | 8-40小时 |
| API端点 | 小时/端点 | 4-24小时 |
| 数据库表 | 小时/表 | 4-16小时 |
| 测试用例 | 小时/测试 | 0.5-4小时 |
| 文档页 | 小时/页 | 2-8小时 |
何时使用:可重复工作、良好历史数据、相似技术
准确性:+/- 15-25%(使用校准率)
三点估算(PERT)
使用乐观、最可能和悲观值进行估算:
| 值 | 符号 | 定义 |
|---|---|---|
| 乐观 | O | 最佳情况,一切顺利 |
| 最可能 | M | 最可能结果 |
| 悲观 | P | 最坏情况,出现问题 |
PERT公式(加权平均):
预期值 = (O + 4M + P) / 6
标准差 = (P - O) / 6
示例:
O = 5天, M = 8天, P = 17天
预期值 = (5 + 4×8 + 17) / 6 = 9天
标准差 = (17 - 5) / 6 = 2天
置信区间:
| 置信度 | 计算 | 示例(E=9, SD=2) |
|---|---|---|
| 68% | E ± 1 SD | 7-11天 |
| 95% | E ± 2 SD | 5-13天 |
| 99.7% | E ± 3 SD | 3-15天 |
何时使用:不确定工作、新技术、需要沟通风险
准确性:提供明确不确定性范围
专家判断
使用集体专家知识进行估算:
宽带德尔菲过程:
| 轮次 | 活动 |
|---|---|
| 1 | 专家独立估算 |
| 2 | 收集并分享匿名估算 |
| 3 | 讨论高低离群值,分享理由 |
| 4 | 重新独立估算 |
| 5 | 重复直到收敛(或平均) |
计划扑克(敏捷):
| 步骤 | 行动 |
|---|---|
| 1 | 展示待估算项 |
| 2 | 简要讨论(2-5分钟) |
| 3 | 每个团队成员私下选择卡片 |
| 4 | 同时揭示 |
| 5 | 讨论离群值 |
| 6 | 重新投票直到达成共识 |
常见尺度:
| 尺度类型 | 值 |
|---|---|
| 斐波那契 | 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 |
| 修改斐波那契 | 0, 0.5, 1, 2, 3, 5, 8, 13, 20, 40, 100 |
| T恤尺码 | XS, S, M, L, XL, XXL |
| 2的幂 | 1, 2, 4, 8, 16, 32, 64 |
何时使用:复杂工作、需要多视角、团队对齐
功能点分析
基于功能规模进行估算(适用于大型系统):
| 组件 | 描述 | 权重范围 |
|---|---|---|
| 外部输入 | 数据进入系统 | 3-6 |
| 外部输出 | 数据离开系统 | 4-7 |
| 外部查询 | 只读查询 | 3-6 |
| 内部文件 | 逻辑数据存储 | 7-15 |
| 外部接口 | 共享数据 | 5-10 |
过程:
- 计数每个组件类型
- 分类复杂度(低/中/高)
- 应用权重
- 计算未调整功能点
- 应用技术复杂度因子
何时使用:大型项目、正式合同、行业基准测试
相对估算
故事点
相对复杂度/努力度量:
| 点 | 相对大小 | 示例 |
|---|---|---|
| 1 | 琐碎 | 修复打字错误、配置更改 |
| 2 | 简单 | 简单bug修复、次要功能 |
| 3 | 中等 | 标准功能、中等复杂度 |
| 5 | 复杂 | 多组件功能 |
| 8 | 非常复杂 | 集成工作、重大未知数 |
| 13 | 史诗级大小 | 考虑分解 |
| 21+ | 太大 | 必须分解 |
基线:选择一个熟知的参考故事(如,“这是一个3点”)
速度:每个迭代完成的故事点(用于预测)
T恤尺码
用于路线图计划的快速相对规模估算:
| 尺码 | 努力范围 | 持续时间范围 |
|---|---|---|
| XS | 1-4小时 | < 1天 |
| S | 0.5-2天 | 1-2天 |
| M | 2-5天 | 3-5天 |
| L | 1-2周 | 1-2周 |
| XL | 2-4周 | 2-4周 |
| XXL | 1-3个月 | 太大,分解 |
工作流程
阶段1:准备
步骤1:澄清范围
## 估算请求
**项:** [被估算的内容]
**请求者:** [需要估算的人]
**目的:** [计划/预算/承诺]
**截止日期:** [估算所需时间]
**精确度:** [ROM/预算/确定]
### 范围定义
- **在范围内:** [包含内容]
- **在范围外:** [排除内容]
- **假设:** [关键假设]
- **约束:** [已知约束]
步骤2:选择估算技术
| 情况 | 推荐技术 |
|---|---|
| 早期项目阶段 | 类比估算 + T恤尺码 |
| 详细需求 | 参数化估算 + 三点估算 |
| 敏捷待办事项 | 故事点 + 计划扑克 |
| 新技术/领域 | 专家判断 + 三点估算 |
| 合同/预算 | 功能点分析 + 参数化估算 |
阶段2:估算
步骤1:分解工作
分解为可估算单位(半天到2周块)
步骤2:应用技术
使用上述选定技术
步骤3:添加应急
## 应急计算
| 风险级别 | 应急 | 何时使用 |
|------------|-------------|-------------|
| 低 | 10-15% | 熟悉、经验团队 |
| 中 | 20-30% | 一些未知、新团队成员 |
| 高 | 40-50% | 重大未知、新技术 |
| 非常高 | 75-100% | 研究、创新、首创 |
步骤4:验证
- 与类似工作进行合理性检查
- 与团队评审
- 检查缺失项
- 验证假设
阶段3:沟通
步骤1:表达为范围
## 估算摘要
**努力:** 160-200小时(置信度:80%)
**持续时间:** 4-5周(有2名开发者)
**成本:** $24,000-$30,000
**关键风险:**
- API集成复杂度未知
- 依赖第三方可用性
步骤2:记录假设
## 估算假设
1. 需求稳定且完整
2. 团队可用性80%(20%开销)
3. 无重大技术变更
4. 依赖项按时交付
5. [额外假设...]
**如果假设改变,应重新评估估算。**
输出格式
叙述摘要
## 估算摘要
**项:** [功能/项目名称]
**日期:** [ISO日期]
**估算者:** estimation-analyst
**技术:** [使用技术]
### 估算
| 维度 | 低 | 预期 | 高 | 置信度 |
|-----------|-----|----------|------|------------|
| 努力 | 120h | 160h | 220h | 80% |
| 持续时间 | 4w | 5w | 7w | 80% |
| 成本 | $18K | $24K | $33K | 80% |
### 估算依据
- **历史参考:** [类似过去工作]
- **生产率率:** [如参数化]
- **专家输入:** [谁贡献]
### 假设
1. [假设1]
2. [假设2]
### 影响估算的风险
| 风险 | 对估算影响 |
|------|-------------------|
| [风险1] | 如发生 +20% |
| [风险2] | 如发生 +15% |
### 建议
1. [细化估算的下一步]
2. [何时重新估算]
结构化数据(YAML)
估算:
版本: "1.0"
日期: "2025-01-15"
项: "用户仪表板功能"
估算者: "estimation-analyst"
技术: "三点估算"
范围:
描述: "带分析的交互式用户仪表板"
在范围内:
- "仪表板UI组件"
- "数据可视化"
- "用户偏好"
在范围外:
- "后端分析引擎"
- "实时更新"
假设:
- "API端点可用"
- "设计原型完成"
估算值:
努力:
乐观: 120
最可能: 160
悲观: 240
预期: 166
单位: "小时"
标准差: 20
持续时间:
乐观: 3
最可能: 4
悲观: 6
预期: 4.2
单位: "周"
成本:
预期: 24000
范围低: 18000
范围高: 36000
货币: "USD"
置信度: 0.80
应急: 0.20
分解:
- 组件: "UI组件"
努力: 60
技术: "参数化"
率: "15h/组件"
数量: 4
- 组件: "数据集成"
努力: 40
技术: "类比"
参考: "PROJ-123"
- 组件: "测试"
努力: 40
技术: "百分比"
百分比: 0.25
风险:
- 风险: "API复杂度高于预期"
概率: 0.3
影响小时: 30
- 风险: "开发期间设计变更"
概率: 0.2
影响小时: 20
历史比较:
类似项: "管理员仪表板"
实际努力: 180
调整因子: 0.9
分解表
## 努力分解
| 组件 | 技术 | 估算 | 应急 | 总计 |
|-----------|-----------|----------|-------------|-------|
| UI组件 | 参数化 | 60h | 12h | 72h |
| 数据集成 | 类比 | 40h | 10h | 50h |
| 测试 | 开发百分比 | 40h | 8h | 48h |
| 文档 | 参数化 | 16h | 4h | 20h |
| **小计** | | **156h** | **34h** | **190h** |
| 管理开销 | 10% | | | 19h |
| **总计** | | | | **209h** |
估算准确性
不确定性锥
随着项目进展,估算准确性提高:
| 阶段 | 准确性范围 |
|---|---|
| 初始概念 | 0.25x - 4x |
| 批准项目 | 0.5x - 2x |
| 需求完成 | 0.67x - 1.5x |
| 详细设计 | 0.8x - 1.25x |
| 代码完成 | 0.9x - 1.1x |
含义:早期估算需要更宽范围;随着知识增长进行细化。
估算级别
| 级别 | 准确性 | 何时使用 |
|---|---|---|
| ROM(粗略数量级) | -25% 至 +75% | 初始预算 |
| 预算 | -10% 至 +25% | 项目批准 |
| 确定 | -5% 至 +10% | 执行基线 |
常见陷阱
| 陷阱 | 预防 |
|---|---|
| 单点估算 | 始终提供范围 |
| 乐观偏见 | 使用历史数据、添加应急 |
| 锚定效应 | 在查看他人估算前估算 |
| 计划谬误 | 包含现实开销和风险 |
| 范围蔓延 | 记录假设、变更时重新估算 |
| 精确度剧场 | 匹配实际知识的精确度 |
集成
上游
- 需求 - 估算内容
- 风险分析 - 影响估算的风险
- 利益相关者分析 - 谁需要估算、所需精确度
下游
- 项目计划 - 资源分配、调度
- 预算 - 成本预测
- 优先级排序 - 用于价值/努力分析的成本输入
相关技能
风险分析- 影响估算的风险优先级排序- 使用估算进行优先级排序决策分析- 权衡决策价值流映射- 估算过程改进努力
版本历史
- v1.0.0 (2025-12-26): 初始发布