软件项目工时估算器Skill workload-calculator

使用三点估算(PERT)、T-shirt sizing或功能点分析(FPA)等方法,对软件项目进行科学工时估算,输出乐观值、最可能值、悲观值及风险区间,支持工作包拆分、置信区间计算和修正因子检查。适用于Sprint规划、报价估算、项目评估等场景。关键词:工时估算、PERT三点估算、T恤尺码估算、功能点分析、软件开发工时、项目工作量评估、置信区间、风险分析。

项目管理 0 次安装 2 次浏览 更新于 7/8/2026

name: 工作量计算器 description: “软件项目工时估算助手,使用三点估算(PERT)、T-shirt sizing或功能点分析(FPA)等方法,将需求拆解为工作包,计算出乐观、最可能和悲观工时,并提供项目总工时、标准差和置信区间等结果。当用户需要估算开发工时、评估项目工作量、做三点估算、T恤尺码估算、功能点分析、Sprint规划、报价工时拆分,或询问“这个功能要多久”、“评估一下工作量”等关键词或场景时触发。” license: MIT

工时估算器 — 软件项目工时估算

基于三点估算 (PERT)、T-shirt 尺码、功能点分析 (FPA) 三大方法论,帮助团队对软件项目进行科学的工时估算,输出乐观值、最可能值、悲观值及风险区间。

快速开始

  1. 用户提供需求描述 → Agent 识别功能模块并拆分工作包 (WBS)
  2. 选择估算方法 → 根据项目阶段和信息粒度,选用合适的方法
  3. 逐项估算 → 对每个工作包给出 O/M/P 三值
  4. 汇总输出 → 生成估算报告(含风险分析和置信区间)

可使用计算工具辅助:

python3 scripts/estimate_calculator.py --method pert --tasks '[{"name":"用户登录","O":2,"M":3,"P":8}]'

方法选择指南

场景 推荐方法 原因
早期可研、预算粗估 T-shirt Sizing 信息少,快速对齐量级
Sprint 规划、迭代估算 三点估算 (PERT) 粒度适中,有置信区间
合同报价、大型项目招标 功能点分析 (FPA) 最严谨,行业可比
团队有历史数据 三点估算 + 历史校准 结合经验修正

方法一:三点估算 (PERT / Three-Point Estimation)

核心公式

指标 公式 含义
期望值 E (O + 4M + P) / 6 加权平均工时
标准差 σ (P − O) / 6 估算不确定性
方差 V σ² 用于汇总多任务
项目总期望 ΣE 各任务期望之和
项目总标准差 √(ΣV) 各任务方差之和再开方

其中:

  • O (Optimistic):乐观估计 — 一切顺利时的最短用时
  • M (Most Likely):最可能估计 — 正常情况下的用时
  • P (Pessimistic):悲观估计 — 遇到困难时的最长用时

置信区间

置信水平 区间 适用场景
68.3% E ± 1σ 内部粗估
90% E ± 1.645σ 项目规划
95% E ± 2σ 对外报价
99.7% E ± 3σ 合同承诺

使用步骤

  1. 拆分 WBS:将需求拆到可独立估算的最小单元(建议每个 ≤ 5 人日)
  2. 三值估算:对每个工作包,分别给出 O / M / P(单位统一:人时或人日)
  3. 计算单任务期望与标准差
  4. 汇总项目级指标:总期望 = ΣE,总标准差 = √(Σσ²)
  5. 输出置信区间:根据风险偏好选择置信水平

O/M/P 估算经验法则

  • O 不应 < M 的 30%(过于乐观意味着忽略了必要步骤)
  • P 不应 > M 的 5 倍(过于悲观说明需求理解不清,应先澄清)
  • 如果 O ≈ M ≈ P,说明任务非常确定,或估算者未认真考虑风险
  • P/O 比值(展幅比)反映不确定性:< 2 低风险,2-4 中风险,> 4 高风险

方法二:T-shirt Sizing

尺码定义参考表

尺码 典型范围 (人日) 典型故事点 适用场景
XS 0.25 – 0.5 1 配置修改、文案调整、简单 bug 修复
S 0.5 – 2 2 – 3 单组件开发、简单 API、UI 微调
M 2 – 5 5 – 8 完整功能模块、中等复杂度 API
L 5 – 15 13 – 21 跨模块功能、需要联调
XL 15 – 40 34 – 55 子系统级开发、需架构设计
XXL 40+ 89+ 需拆分为多个迭代,不建议作为单个估算单元

从 T-shirt 转三点估算

当需要更精确的数值时,可将 T-shirt 尺码转换为三点估算:

尺码 O (人日) M (人日) P (人日)
XS 0.25 0.5 1
S 0.5 1 2.5
M 2 3.5 7
L 5 10 20
XL 15 25 50
XXL 40 70 150

使用步骤

  1. 团队对齐:确认各尺码含义(上表为参考,团队可自定义)
  2. 独立评估:每人独立给出尺码,避免锚定效应
  3. 讨论差异:差异超过 2 个尺码时必须讨论
  4. 达成共识:取团队共识值
  5. 转换数值(可选):用上表转为 O/M/P 三值

方法三:功能点分析 (Function Point Analysis, FPA)

五类功能组件

组件类型 缩写 定义 示例
内部逻辑文件 ILF 应用维护的逻辑数据组 用户表、订单表
外部接口文件 EIF 应用引用但不维护的数据组 第三方汇率数据
外部输入 EI 从外部进入系统的数据处理 表单提交、API POST
外部输出 EO 生成并发送到外部的数据 报表生成、导出
外部查询 EQ 简单的数据检索+展示 列表查询、详情页

复杂度权重矩阵

组件类型
ILF 7 10 15
EIF 5 7 10
EI 3 4 6
EO 4 5 7
EQ 3 4 6

复杂度判定规则

ILF / EIF 复杂度(基于 DET 数据元素类型 和 RET 记录类型):

DET 1-19 DET 20-50 DET 51+
RET 1
RET 2-5
RET 6+

EI 复杂度(基于 DET 和 FTR 引用文件类型数):

DET 1-4 DET 5-15 DET 16+
FTR 0-1
FTR 2
FTR 3+

EO / EQ 复杂度(基于 DET 和 FTR):

DET 1-5 DET 6-19 DET 20+
FTR 0-1
FTR 2-3
FTR 4+

功能点转工时

未调整功能点 (UFP) 计算完成后,需要:

  1. 计算调整因子 VAF(可选,IFPUG 4.3+ 已弃用,但仍有团队使用)

    • 14 个通用系统特征 (GSC),每项 0-5 分
    • VAF = 0.65 + 0.01 × Σ(GSC)
    • 调整后功能点 AFP = UFP × VAF
  2. 功能点转人时

    • 行业基准:8-15 人时/功能点(取决于语言和团队成熟度)
    技术栈 人时/功能点 说明
    低代码/成熟框架 4 – 8 有大量可复用组件
    Python/JS/现代Web 8 – 12 主流开发效率
    Java/C# 企业级 10 – 15 含架构和规范开销
    嵌入式/C/C++ 15 – 25 调试和测试成本高
    遗留系统维护 20 – 30 理解和回归成本

使用步骤

  1. 识别功能组件:列出所有 ILF, EIF, EI, EO, EQ
  2. 评定复杂度:对每个组件判定低/中/高
  3. 计算 UFP:各组件 × 对应权重后求和
  4. 选择转换系数:根据技术栈选人时/功能点比率
  5. 计算总工时:UFP × 转换系数
  6. 加入缓冲:建议加 15-30% 的管理和风险缓冲

估算修正因子检查清单

估算完成后,检查以下因素是否已纳入:

技术因素

  • [ ] 技术栈熟悉度(团队是否有经验?不熟悉 +30-50%)
  • [ ] 技术债务(遗留代码质量差?+20-40%)
  • [ ] 第三方依赖(API 不稳定?文档缺失?+10-30%)
  • [ ] 性能/安全要求(有特殊非功能需求?+15-25%)

团队因素

  • [ ] 团队规模(> 5 人时沟通成本显著增加,+5%/人)
  • [ ] 人员流动风险(有成员可能离开?+15-25%)
  • [ ] 并行项目(团队在多个项目间切换?+20-30%)
  • [ ] 新成员上手(有新人加入?前 2 周效率降 50%)

流程因素

  • [ ] 需求稳定性(需求可能变更?+20-50%)
  • [ ] 审批流程(需要多层审批?+10-20%)
  • [ ] 部署复杂度(多环境、多区域部署?+10-15%)
  • [ ] 合规要求(有审计、合规流程?+15-30%)

常被低估的工作

  • [ ] 代码审查 (Code Review):+10-15%
  • [ ] 单元测试编写:+15-25%
  • [ ] 集成测试 / E2E 测试:+10-20%
  • [ ] 文档编写:+5-15%
  • [ ] Bug 修复和回归:+10-20%
  • [ ] 环境搭建和 DevOps:+5-10%
  • [ ] 会议和沟通:+10-15%

估算输出模板

Agent 完成估算后,应按以下格式输出:

## 估算报告:[项目/功能名称]

### 估算方法:[三点估算 / T-shirt / FPA]

### 工作包拆分

| # | 工作包 | O (人日) | M (人日) | P (人日) | E (人日) | σ |
|---|--------|---------|---------|---------|---------|---|
| 1 | xxx    | x       | x       | x       | x.x     | x.x |
| 2 | xxx    | x       | x       | x       | x.x     | x.x |

### 汇总

- 总期望工时:X 人日
- 总标准差:X 人日
- 68% 置信区间:X – X 人日
- 90% 置信区间:X – X 人日
- 95% 置信区间:X – X 人日

### 修正因子
- [已考虑的因素及调整]

### 最终建议
- 内部规划用:X 人日(90% 置信)
- 对外报价用:X 人日(95% 置信)

### 风险提示
- [主要风险点和缓解建议]

计算工具

提供 scripts/estimate_calculator.py 脚本,支持三种估算方法的数值计算:

# 三点估算 (PERT)
python3 scripts/estimate_calculator.py --method pert \
  --tasks '[{"name":"登录模块","O":2,"M":3,"P":8},{"name":"支付模块","O":5,"M":10,"P":20}]'

# T-shirt 尺码转换
python3 scripts/estimate_calculator.py --method tshirt \
  --tasks '[{"name":"登录模块","size":"M"},{"name":"支付模块","size":"L"}]'

# 功能点分析
python3 scripts/estimate_calculator.py --method fpa \
  --components '[{"type":"ILF","complexity":"中","count":3},{"type":"EI","complexity":"低","count":5}]' \
  --hours-per-fp 10

参考文档

  • IFPUG (International Function Point Users Group) CPM 4.3.1
  • PMI PMBOK Guide — 第 6 版,6.4 估算活动持续时间
  • Steve McConnell《软件估算:揭开黑盒艺术》
  • Mike Cohn《敏捷估算与规划》