estimation について
Estimationは、プロジェクトやタスクの工数、コスト、期間、複雑さを予測するスキルです。複数の手法に加え、不確実性の表現、前提の検証、範囲での伝達方法を説明します。
主な機能
- 01類推・パラメトリック見積もり
- 02三点PERT見積もり
- 03専門家判断とPlanning Poker
- 04ストーリーポイントとTシャツサイズ
- 05範囲見積もりと予備費
活用シーン
- 01機能の工数や期間の見積もり
- 02プロジェクト予算の作成
- 03アジャイルバックログの規模評価
- 04計画上の不確実性の共有
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ melodic-software/ claude-code-plugins --skill estimationインストール後、Claude Code で/estimationを入力して読み込まれたか確認します。
詳細
見積もり
このスキルを使用する場面
次の場合にこのスキルを使用します。
- 見積もりタスク - 類推、パラメトリック、三点見積もり、専門家の判断などの見積もり手法に取り組む場合。プロジェクト、機能、タスクの工数、コスト、期間、複雑さを見積もります。
- 計画または設計 - 見積もりのアプローチについてガイダンスが必要な場合
- ベストプラクティス - 確立されたパターンや標準に従いたい場合
概要
実績のある見積もり手法を使って、工数、コスト、期間、複雑さを体系的に見積もります。プロジェクト、機能、タスクに対し、類推、パラメトリック、三点見積もり(PERT)、専門家の判断による手法をサポートします。
見積もりとは
見積もりとは、作業を完了するために必要なリソース、時間、コストを予測するプロセスです。優れた見積もりでは、次の要素のバランスを取ります。
- 正確性:実際の結果にどれほど近いか
- 精度:見積もりの一貫性
- 速度:見積もりにかかる時間
- コミュニケーション:不確実性について共通理解を持つこと
見積もりとコミットメントの違い
| 概念 | 定義 | 用途 |
|---|---|---|
| 見積もり | 現在の知識に基づく最善の推測 | 計画、予測 |
| コミットメント | 期日またはコストまでに納品する約束 | 契約、期限 |
| 目標 | 目指すべき望ましい結果 | ゴール、目的 |
**重要な原則:**見積もりは不確実性を伴う範囲であり、単一の数値による保証ではありません。
見積もり手法
類推見積もり(トップダウン)
過去の類似作業に基づいて見積もります。
| 手順 | アクション |
|---|---|
| 1 | 類似する完了済みのプロジェクトまたは機能を特定する |
| 2 | 実績工数、コスト、期間を取得する |
| 3 | 相違点(複雑さ、チーム、テクノロジー)を考慮して調整する |
| 4 | 調整係数を適用する |
計算式:
New Estimate = Historical Actual × Adjustment Factor
Example:
Similar project took 200 hours
New project is ~20% more complex
Estimate = 200 × 1.20 = 240 hours
**使用する場面:**初期段階、詳細情報が限られている場合、過去のデータを持つ経験豊富なチーム
正確性:±25~50%(質の高い過去のデータがあれば向上します)
パラメトリック見積もり
統計的な関係を使って見積もります。
| 要素 | 説明 |
|---|---|
| 作業単位 | 測定可能な要素(画面、API、テーブル) |
| 生産性レート | 過去のデータに基づく単位あたりの工数 |
| 数量 | 作成する単位数 |
計算式:
Estimate = Quantity × Productivity Rate
Example:
10 API endpoints × 16 hours/endpoint = 160 hours
一般的な生産性指標:
| 作業の種類 | 指標 | 典型的な範囲 |
|---|---|---|
| UI 画面 | 時間/画面 | 8~40時間 |
| API エンドポイント | 時間/エンドポイント | 4~24時間 |
| データベーステーブル | 時間/テーブル | 4~16時間 |
| テストケース | 時間/テスト | 0.5~4時間 |
| ドキュメントページ | 時間/ページ | 2~8時間 |
**使用する場面:**反復可能な作業、十分な過去のデータがある場合、類似したテクノロジーを使用する場合
正確性:±15~25%(レートを調整済みの場合)
三点見積もり(PERT)
楽観値、最頻値、悲観値を使って見積もります。
| 値 | 記号 | 定義 |
|---|---|---|
| 楽観値 | O | すべてが順調に進んだ場合の最良のケース |
| 最頻値 | M | 最も起こりそうな結果 |
| 悲観値 | P | 問題が発生した場合の最悪のケース |
PERT の計算式(加重平均):
Expected = (O + 4M + P) / 6
Standard Deviation = (P - O) / 6
Example:
O = 5 days, M = 8 days, P = 17 days
Expected = (5 + 4×8 + 17) / 6 = 9 days
Std Dev = (17 - 5) / 6 = 2 days
信頼区間:
| 信頼度 | 計算 | 例(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 | 簡単 | 簡単なバグ修正、小規模な機能 |
| 3 | 中程度 | 標準的な機能、中程度の複雑さ |
| 5 | 複雑 | 複数コンポーネントにまたがる機能 |
| 8 | 非常に複雑 | 統合作業、大きな不確実性 |
| 13 | エピック規模 | 分割を検討する |
| 21+ | 大きすぎる | 必ず分割する |
ベースライン: 基準として、内容をよく理解しているストーリーを選びます(例:「これは 3」)。
ベロシティ: 1 回のイテレーションで完了したストーリーポイント数(予測に使用)
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:スコープを明確にする
## Estimation Request
**Item:** [What's being estimated]
**Requester:** [Who needs the estimate]
**Purpose:** [Planning/budgeting/commitment]
**Deadline:** [When estimate is needed]
**Precision:** [ROM/Budget/Definitive]
### Scope Definition
- **In Scope:** [What's included]
- **Out of Scope:** [What's excluded]
- **Assumptions:** [Key assumptions]
- **Constraints:** [Known constraints]
手順 2:見積もり手法を選択する
| 状況 | 推奨手法 |
|---|---|
| プロジェクトの初期段階 | 類推法 + T シャツサイズ |
| 詳細な要件がある | パラメトリック法 + 三点見積もり |
| アジャイルのバックログ | ストーリーポイント + プランニングポーカー |
| 新しい技術/分野 | 専門家の判断 + 三点見積もり |
| 契約/予算 | ファンクションポイント法 + パラメトリック法 |
フェーズ 2:見積もり
手順 1:作業を分解する
見積もり可能な単位(半日~2 週間の作業単位)に分解します。
手順 2:手法を適用する
上記で選択した手法を使用します。
手順 3:予備費を追加する
## Contingency Calculation
| Risk Level | Contingency | When to Use |
|------------|-------------|-------------|
| Low | 10-15% | Well-understood, experienced team |
| Medium | 20-30% | Some unknowns, new team members |
| High | 40-50% | Significant unknowns, new technology |
| Very High | 75-100% | Research, innovation, first-of-kind |
手順 4:妥当性を確認する
- 類似の作業と比べて妥当か確認する
- チームでレビューする
- 抜け漏れがないか確認する
- 前提条件を検証する
フェーズ 3:伝達
手順 1:範囲で表す
## Estimate Summary
**Effort:** 160-200 hours (confidence: 80%)
**Duration:** 4-5 weeks (with 2 developers)
**Cost:** $24,000-$30,000
**Key Risks:**
- API integration complexity unknown
- Dependency on third-party availability
手順 2:前提条件を文書化する
## Estimation Assumptions
1. Requirements are stable and complete
2. Team has 80% availability (20% overhead)
3. No major technology changes
4. Dependencies delivered on time
5. [Additional assumptions...]
**If assumptions change, estimate should be revisited.**
出力形式
概要文
## Estimation Summary
**Item:** [Feature/Project name]
**Date:** [ISO date]
**Estimator:** estimation-analyst
**Technique:** [Technique used]
### Estimate
| Dimension | Low | Expected | High | Confidence |
|-----------|-----|----------|------|------------|
| Effort | 120h | 160h | 220h | 80% |
| Duration | 4w | 5w | 7w | 80% |
| Cost | $18K | $24K | $33K | 80% |
### Basis of Estimate
- **Historical Reference:** [Similar past work]
- **Productivity Rate:** [If parametric]
- **Expert Input:** [Who contributed]
### Assumptions
1. [Assumption 1]
2. [Assumption 2]
### Risks Affecting Estimate
| Risk | Impact on Estimate |
|------|-------------------|
| [Risk 1] | +20% if occurs |
| [Risk 2] | +15% if occurs |
### Recommendations
1. [Next steps for refining estimate]
2. [When to re-estimate]
構造化データ(YAML)
estimation:
version: "1.0"
date: "2025-01-15"
item: "User Dashboard Feature"
estimator: "estimation-analyst"
technique: "three_point"
scope:
description: "Interactive user dashboard with analytics"
in_scope:
- "Dashboard UI components"
- "Data visualization"
- "User preferences"
out_of_scope:
- "Backend analytics engine"
- "Real-time updates"
assumptions:
- "API endpoints available"
- "Design mockups complete"
estimates:
effort:
optimistic: 120
most_likely: 160
pessimistic: 240
expected: 166
unit: "hours"
std_deviation: 20
duration:
optimistic: 3
most_likely: 4
pessimistic: 6
expected: 4.2
unit: "weeks"
cost:
expected: 24000
range_low: 18000
range_high: 36000
currency: "USD"
confidence: 0.80
contingency: 0.20
breakdown:
- component: "UI Components"
effort: 60
technique: "parametric"
rate: "15h/component"
quantity: 4
- component: "Data Integration"
effort: 40
technique: "analogous"
reference: "PROJ-123"
- component: "Testing"
effort: 40
technique: "percentage"
percentage: 0.25
risks:
- risk: "API complexity higher than expected"
probability: 0.3
impact_hours: 30
- risk: "Design changes during development"
probability: 0.2
impact_hours: 20
historical_comparison:
similar_item: "Admin Dashboard"
actual_effort: 180
adjustment_factor: 0.9
内訳表
## Effort Breakdown
| Component | Technique | Estimate | Contingency | Total |
|-----------|-----------|----------|-------------|-------|
| UI Components | Parametric | 60h | 12h | 72h |
| Data Integration | Analogous | 40h | 10h | 50h |
| Testing | % of Dev | 40h | 8h | 48h |
| Documentation | Parametric | 16h | 4h | 20h |
| **Subtotal** | | **156h** | **34h** | **190h** |
| Management Overhead | 10% | | | 19h |
| **Total** | | | | **209h** |
見積もりの精度
不確実性の範囲
プロジェクトの進行に伴い、見積もりの精度は向上します。
| フェーズ | 精度の範囲 |
|---|---|
| 初期構想 | 0.25x - 4x |
| プロジェクト承認済み | 0.5x - 2x |
| 要件確定 | 0.67x - 1.5x |
| 詳細設計 | 0.8x - 1.25x |
| コード完成 | 0.9x - 1.1x |
意味するところ: 初期段階の見積もりでは広い範囲を提示し、知識が増えるにつれて精度を高めていきます。
見積もりのレベル
| レベル | 精度 | 用途 |
|---|---|---|
| ROM(概算) | -25% to +75% | 初期予算策定 |
| 予算見積もり | -10% to +25% | プロジェクト承認 |
| 確定見積もり | -5% to +10% | 実行時の基準 |
よくある落とし穴
| 落とし穴 | 防止策 |
|---|---|
| 単一値での見積もり | 常に範囲を提示する |
| 楽観バイアス | 過去のデータを使い、予備分を加える |
| アンカリング | 他者の見積もりを見る前に見積もる |
| 計画の誤謬 | 現実的なオーバーヘッドとリスクを含める |
| スコープクリープ | 前提条件を文書化し、変更時に再見積もりする |
| 精密さの演出 | 実際の知識に見合った精度にする |
統合
上流
- 要件 - 見積もりの対象
- risk-analysis - 見積もりに影響するリスク
- stakeholder-analysis - 見積もりを必要とする人、求められる精度
下流
- プロジェクト計画 - リソース配分、スケジュール策定
- 予算策定 - コスト予測
- prioritization - 価値/労力分析におけるコスト情報
関連スキル
risk-analysis- 見積もりに影響するリスクprioritization- 優先順位付けへの見積もりの活用decision-analysis- トレードオフの判断value-stream-mapping- プロセス改善に必要な労力の見積もり
バージョン履歴
- v1.0.0(2025-12-26):初回リリース