リリース・イテレーション計画ガイド¶
はじめに¶
このガイドは、XPプログラマ向けのリリース計画とイテレーション計画の実用的な作成手法を提供します。アジャイルな見積もりと計画づくりの原則に基づき、現場で即座に活用できる具体的なステップとツールを含んでいます。
計画の基本概念¶
アジャイルな計画づくりの原則¶
- 計画よりも計画づくりを重視:
計画は生きた文書として継続的に更新 - 変化を促進:
要件や状況の変化に柔軟に対応 - フィーチャ中心:
顧客価値を提供するフィーチャを計画の単位に
アジャイルな計画づくりプロセス¶
1. リリース計画作成プロセス¶
1.1 リリース計画の目的¶
リリース計画は「いつどれだけの成果が出せるか」を判断することです。
1.2 リリース計画作成手順¶
ステップ1:¶
満足条件の決定
プロダクトオーナーと協力して以下を定義:
- スコープ:
どんなフィーチャを含むか - スケジュール:
いつまでに完成させるか - リソース:
どのようなチーム構成で開発するか
ステップ2:¶
ユーザーストーリーの見積もり
ストーリーポイント法を推奨
# 見積もりスケール例
- 1, 2, 3, 5, 8, 13, 20, 40, 100
# プランニングポーカーの進め方
1. ストーリーを読み上げ、質疑応答
2. 全員が同時にポイントカードを提示
3. 最大値と最小値の人が理由を説明
4. 合意に至るまで議論・再見積もり
ステップ3:¶
ベロシティの見積もり
新チームの場合 - 代表的なストーリーをタスクに分解 - 理想時間で見積もり - チームの作業可能時間(1日4-6時間)と照合
既存チームの場合 - 過去3-8イテレーションの平均値を使用 - 以下が同じであることを確認: - 技術スタック - チームメンバー - 業務分野 - 開発環境
ステップ4:¶
優先順位の決定
4つの評価軸
- 金銭価値:
新規売上、効率化効果 2. コスト:
開発・運用・サポートコスト 3. 知識習得:
プロダクトナレッジ・プロジェクトナレッジ 4. リスク軽減:
技術的・ビジネス的リスクの低減
1.3 リリース計画の更新¶
- 各イテレーション開始時に見直し
- ベロシティの実績値で調整
- スコープ変更の反映
2. イテレーション計画作成プロセス¶
2.1 リリース計画との違い¶
| 項目 | リリース計画 | イテレーション計画 |
|---|---|---|
| 対象期間 | 3-6ヶ月 | 1-4週間 |
| 構成要素 | ユーザーストーリー | タスク |
| 見積単位 | ストーリーポイント/理想日 | 理想時間 |
2.2 イテレーション計画作成手順¶
コミットメント駆動方式(推奨)¶
ステップ1:¶
イテレーションゴールの設定
- 1-2行でイテレーションで達成することを記述
- チーム全員が理解できる明確な目標
- フィーチャの価値に焦点を当てる
ステップ2:¶
ストーリーのタスク分解
良いタスクの特徴 - 4-16理想時間で完了可能 - 具体的で実行可能 - 測定可能(完了/未完了が判断可能)
タスクの種類 - 開発タスク(設計、実装、単体テスト) - 統合タスク(システム統合、統合テスト) - その他(ドキュメント作成、環境構築) - スパイク(調査・検証タスク)
ステップ3:¶
理想時間での見積もり
# 理想時間の原則
- 割り込みや会議を除いた純粋な作業時間
- 個人差は考慮しない(チーム平均で考える)
- 1つの値で見積もる(幅を持たせない)
# 見積もりのガイドライン
- 1-2時間:简单な修正、設定変更
- 4-8時間:標準的な機能実装
- 12-16時間:複雑な機能、新技術の習得を伴う
2.3 イテレーションの実行¶
デイリースタンドアップ¶
毎日の進捗確認で以下を共有:
- 昨日やったこと
- 今日やること
- 障害・ブロッカー
タスクボードの活用¶
# タスクボード構成
| TODO | 作業中 | レビュー | 完了 |
|------|--------|----------|------|
| タスク1 | タスク2 | タスク3 | タスク4 |
3. 見積もりのベストプラクティス¶
3.1 ストーリーポイント vs 理想日¶
ストーリーポイントの利点 - 純粋な規模の見積もり - チームスキル向上による再見積もりが不要 - チーム横断での比較が可能 - 相対見積もりで精度が高い
理想日の利点 - 初心者に理解しやすい - 時間感覚との対応が直感的
3.2 見積もり精度の向上¶
不確実性コーンの活用
見積もりの改善方法 - 過去の実績データを蓄積 - 見積もりと実績の差分を分析 - チームで見積もり基準を統一
3.3 再見積もりのタイミング¶
以下の場合に再見積もりを実施: - ストーリーの相対的な大きさが変わった - 新しい技術・業務知識を習得した - チーム構成が大きく変わった
注意:進捗の遅れのみでは再見積もりしない
4. 進捗管理とモニタリング¶
4.0 全体スケジュール管理¶
リリース全体のガントチャート
gantt
title リリース計画全体スケジュール(6ヶ月)
dateFormat YYYY-MM-DD
section リリース1
イテレーション1(計画・環境構築) :done, iter1, 2024-01-01, 2w
イテレーション2(基本機能開発) :done, iter2, after iter1, 2w
イテレーション3(コア機能実装) :active, iter3, after iter2, 2w
イテレーション4(統合・改善) : iter4, after iter3, 2w
section リリース2
イテレーション5(新機能開発) : iter5, after iter4, 2w
イテレーション6(パフォーマンス改善) : iter6, after iter5, 2w
イテレーション7(UI/UX改善) : iter7, after iter6, 2w
イテレーション8(バグ修正・安定化) : iter8, after iter7, 2w
section リリース3
イテレーション9(拡張機能開発) : iter9, after iter8, 2w
イテレーション10(セキュリティ強化) : iter10, after iter9, 2w
イテレーション11(最終統合) : iter11, after iter10, 2w
イテレーション12(リリース準備) :crit, iter12, after iter11, 2w
section マイルストーン
リリース1.0(MVP) :milestone, m1, after iter4, 0d
リリース2.0(機能拡張版) :milestone, m2, after iter8, 0d
リリース3.0(完成版) :milestone, m3, after iter12, 0d
イテレーション内のストーリー進捗ガントチャート
gantt
title イテレーション3の詳細スケジュール(2週間)
dateFormat YYYY-MM-DD
axisFormat %m/%d
section ユーザー管理
ログイン機能 :done, story1, 2024-02-01, 3d
ユーザー登録 :active, story2, after story1, 2d
パスワードリセット : story3, after story2, 2d
section 商品管理
商品一覧表示 :done, story4, 2024-02-01, 2d
商品詳細表示 :active, story5, after story4, 2d
商品検索機能 : story6, after story5, 3d
section 注文処理
カート機能 : story7, 2024-02-05, 3d
注文確認画面 : story8, after story7, 2d
決済処理 :crit, story9, after story8, 2d
section 共通タスク
デイリースタンドアップ :daily, 2024-02-01, 10d
イテレーションレビュー :milestone, review, 2024-02-14, 0d
4.1 ベロシティの計算¶
オール・オア・ナッシング方式 - 完全に完了したストーリーのみポイント加算 - 未完了ストーリーはゼロポイント
xychart-beta
title "ベロシティ推移"
x-axis ["イテ1", "イテ2", "イテ3", "イテ4", "イテ5", "イテ6"]
y-axis "ストーリーポイント" 0 --> 25
bar [15, 18, 14, 19, 17, 20]
line [17, 17, 17, 17, 17, 17]
4.2 バーンダウンチャート¶
リリースバーンダウンチャート
xychart-beta
title "リリースバーンダウンチャート"
x-axis ["イテ1", "イテ2", "イテ3", "イテ4", "イテ5", "イテ6"]
y-axis "残ストーリーポイント" 0 --> 100
line [80, 65, 48, 30, 15, 0]
イテレーションバーンダウンチャート
xychart-beta
title "イテレーションバーンダウンチャート"
x-axis ["1日目", "2日目", "3日目", "4日目", "5日目", "6日目", "7日目", "8日目", "9日目", "10日目"]
y-axis "残り理想時間" 0 --> 80
line [80, 75, 68, 60, 50, 38, 25, 15, 8, 0]
4.3 パーキングロットチャート¶
テーマ単位での進捗可視化
5. リスクマネジメント¶
5.1 バッファ計画¶
フィーチャバッファ - 重要度の低いフィーチャを30%程度用意 - スケジュール遅延時に削除対象とする
スケジュールバッファ - 各ストーリーの50%見積もりと90%見積もりの差の平方の合計の平方根 - 不確実性に対するスケジュール的余裕
5.2 複数チーム間の調整¶
共通見積もり基準の確立 - 全チーム共通のストーリーポイントスケール - 基準ストーリーの共有と合意
移動する先読み範囲 - 今後2-3イテレーションの計画を事前共有 - チーム間の依存関係を早期に特定
6. コミュニケーション¶
6.1 ステークホルダーへの報告¶
3つのベロシティ値で予測
- 直近イテレーション:最新状況
- 平均:長期トレンド
- ワースト3平均:最悪ケース
6.2 イテレーション終了報告¶
# イテレーション終了報告テンプレート
## 基本情報
- イテレーション: 第X回
- 期間: YYYY/MM/DD - YYYY/MM/DD
- 作業日数: X日
## 成果
| ストーリー | 状態 | ポイント |
|-----------|------|----------|
| ストーリーA | 完了 | 5 |
| ストーリーB | 完了 | 3 |
| ストーリーC | 未完了 | 0 |
## 指標
- 今回ベロシティ: Xポイント
- 平均ベロシティ: Yポイント
- 次イテレーション予定: Zポイント
## ふりかえり
### よかったこと
- ...
### 改善点
- ...
### アクション
- ...
7. チェックリスト¶
リリース計画チェックリスト¶
- プロダクトオーナーの満足条件が明確
- 全ストーリーにストーリーポイントを設定
- 優先順位が明確(価値・コスト・知識・リスクで評価)
- ベロシティ見積もりが妥当(過去実績または詳細見積もりベース)
- リスクバッファを考慮
- 各イテレーションの目標が明確
イテレーション計画チェックリスト¶
- イテレーションゴールが1-2行で表現
- 全ストーリーをタスクに分解
- 各タスクが4-16理想時間
- チーム全員がコミット
- タスクボードを準備
- デイリースタンドアップの時間を設定
見積もりチェックリスト¶
- 相対見積もりを実施(プランニングポーカーなど)
- 見積もりスケールを統一
- 全員参加で見積もり
- 見積もり根拠を共有
- 不確実性を考慮した幅を設定
まとめ¶
このガイドに従うことで、XPチームは効果的なリリース計画とイテレーション計画を作成できます。重要なのは:
- 継続的な改善:計画は生きた文書として更新し続ける
- チーム全体での合意:見積もりと計画をチーム全員で作成
- 価値志向:顧客価値を最大化する優先順位付け
- 透明性:進捗と課題を常にオープンに共有
定期的にこのガイドを見直し、チームの状況に合わせてカスタマイズしてください。