executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
workload-calculator软件项目工时估算助手,使用三点估算(PERT)、T-shirt sizing或功能点分析(FPA)等方法,将需求拆解为工作包,计算出乐观、最可能和悲观工时,并提供项目总工时、标准差和置信区间等结果。当用户需要估算开发工时、评估项目工作量、做三点估算、T恤尺码估算、功能点分析、Sprint规划、报价工时拆分,或询问“这个功能要多久”、“评估一下工作量”等关键词或场景时触发。
Independent GitHub snapshot · Automated classification · Original documentation governs
基于三点估算 (PERT)、T-shirt Sizing、功能点分析 (FPA) 三大方法论,帮助团队对软件项目进行科学的工时估算,输出乐观值、最可能值、悲观值及风险区间。
可使用计算工具辅助:
python3 scripts/estimate_calculator.py --method pert --tasks '[{"name":"用户登录","O":2,"M":3,"P":8}]'
| 场景 | 推荐方法 | 原因 |
|---|---|---|
| 早期可研、预算粗估 | T-shirt Sizing | 信息少,快速对齐量级 |
| Sprint 规划、迭代估算 | 三点估算 (PERT) | 粒度适中,有置信区间 |
| 合同报价、大型项目招标 | 功能点分析 (FPA) | 最严谨,行业可比 |
| 团队有历史数据 | 三点估算 + 历史校准 | 结合经验修正 |
| 指标 | 公式 | 含义 |
|---|---|---|
| 期望值 E | (O + 4M + P) / 6 | 加权平均工时 |
| 标准差 σ | (P − O) / 6 | 估算不确定性 |
| 方差 V | σ² | 用于汇总多任务 |
| 项目总期望 | ΣE | 各任务期望之和 |
| 项目总标准差 | √(ΣV) | 各任务方差之和再开方 |
其中:
| 置信水平 | 区间 | 适用场景 |
|---|---|---|
| 68.3% | E ± 1σ | 内部粗估 |
| 90% | E ± 1.645σ | 项目规划 |
| 95% | E ± 2σ | 对外报价 |
| 99.7% | E ± 3σ | 合同承诺 |
| 尺码 | 典型范围 (人日) | 典型故事点 | 适用场景 |
|---|---|---|---|
| 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 尺码转换为三点估算:
| 尺码 | 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 |
| 组件类型 | 缩写 | 定义 | 示例 |
|---|---|---|---|
| 内部逻辑文件 | 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) 计算完成后,需要:
计算调整因子 VAF(可选,IFPUG 4.3+ 已弃用,但仍有团队使用)
功能点转人时
| 技术栈 | 人时/功能点 | 说明 |
|---|---|---|
| 低代码/成熟框架 | 4 – 8 | 有大量可复用组件 |
| Python/JS/现代Web | 8 – 12 | 主流开发效率 |
| Java/C# 企业级 | 10 – 15 | 含架构和规范开销 |
| 嵌入式/C/C++ | 15 – 25 | 调试和测试成本高 |
| 遗留系统维护 | 20 – 30 | 理解和回归成本 |
估算完成后,检查以下因素是否已纳入:
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