ロードマップ、タイムトラッキング、マイルストーン、バーンアップ、バーンダウンチャート
「今のマイルストーン、間に合うのか?」「見積もりと実績の乖離はどれくらいか?」「次の四半期のリソース配分はどうするべきか?」
こうした問いに、データで答えられるチームは強い。GitLabには、プロジェクトの計画から実行、振り返りまでを一貫して可視化する3つの機能があります。ロードマップ、時間追跡、バーンダウン・バーンアップチャートです。
本記事では、これらの機能を組み合わせて、チーム全体でプロジェクトの状態を共有し、データに基づいた意思決定を行う方法を解説します。
1. 3つの機能が提供する視点
GitLabのプロジェクト管理機能は、それぞれ異なる時間軸と粒度でプロジェクトを可視化します。
1.1 ロードマップ:戦略的な視点(数ヶ月〜数年)
ロードマップは、エピックとマイルストーンをタイムライン形式(ガントチャート)で表示します。Premium以上のティアで利用できます。
何が見えるか
- グループ、サブグループ、プロジェクト内のエピックとマイルストーンの配置
- エピックバーには、タイトル、進捗状況、完了した重みのパーセンテージ
- 子エピックの階層構造(展開・折りたたみ可能)
- ブロックされたエピック(Ultimate版)
どう使うか
ロードマップは、以下の項目でソートとフィルタリングができます。
ソート項目:
- 開始日、期限、タイトル、作成日、最終更新日
フィルタ項目:
- 作成者、ラベル、マイルストーン、機密性、エピック、リアクション、グループ
特にラベルによるフィルタリングは、パフォーマンスの大幅な改善につながります。フィルタを設定したURLをブックマークしておくと、次回から素早く目的のビューを表示できます。
タイムライン表示は、3つの日付範囲プリセットから選択できます。
- 今四半期: 現在の四半期の週を表示
- 今年: 現在の年の週または月を表示
- 3年以内: 過去18ヶ月と今後18ヶ月(合計3年)の週、月、または四半期を表示
レイアウトは、週、月、四半期から選択できます(日付範囲によって利用可能なレイアウトが異なります)。
1.2 時間追跡:実行の視点(日〜週)
時間追跡は、イシュー、マージリクエスト、エピック、タスクに費やした時間を記録します。Free版から利用できます。
何が見えるか
- 各アイテムの見積もり時間と実際に費やした時間
- 残りの見積もり時間
- 時間エントリの詳細(いつ、誰が、何に、どれだけ)
- グローバル時間追跡レポート(GitLab全体の集計)
どう使うか
見積もりの設定:
/estimate 1mo 2w 3d 4h 5m
時間の記録(3つの方法):
- UI: サイドバーの「時間エントリを追加」から、時間、日付、概要を入力
-
クイックアクション: コメントに
/spend 1h 2021-01-31と入力 -
コミットメッセージ(GitLab 18.3以降、フラグで制御):
ログインフォームのバグを修正 #123 @1h30m
利用可能な時間単位:
| 時間単位 | 入力方法 | 換算率 |
|---|---|---|
| 月 |
mo、month、months
|
4週(160時間) |
| 週 |
w、week、weeks
|
5日(40時間) |
| 日 |
d、day、days
|
8時間 |
| 時間 |
h、hour、hours
|
60分 |
| 分 |
m、minute、minutes
|
- |
1.3 バーンダウン・バーンアップチャート:進捗の視点(週〜月)
バーンダウンチャートとバーンアップチャートは、マイルストーンの進捗を可視化します。Premium以上のティアで利用できます。
何が見えるか
バーンダウンチャート:
- マイルストーン期間中の残りイシュー数の推移
- 理想的な進捗線と実際の進捗線の比較
バーンアップチャート:
- 総イシュー数(青線)と完了イシュー数(オレンジ線)の推移
- スコープの変更(総線の上下)と完了の進捗(完了線の上昇)を区別
どう使うか
マイルストーンに開始日と期限を設定すると、自動的にチャートが生成されます。
チャートの上部で「イシュー」または「イシューの重み」を切り替えることで、表示方法を変更できます。重みで表示する場合は、すべてのイシューに重みを割り当てる必要があります。
バーンダウンとバーンアップの使い分け
- バーンダウン: 残りの作業に焦点を当てたいとき
- バーンアップ: スコープの変更を監視したいとき(総線の急増がスコープクリープを示す)
2. 3つの機能を連携させる実践シナリオ
架空のプロジェクト「新しい認証システムの開発」を例に、3つの機能をどう組み合わせるかを見ていきます。
2.1 計画フェーズ:ロードマップで全体像を描く
やること
- エピック「認証システムリニューアル」を作成し、開始日と期限を設定
- 子エピック「OAuth2.0対応」「多要素認証」「パスワードポリシー強化」を作成
- 各エピックにマイルストーン「Q1スプリント1」「Q1スプリント2」などを割り当て
- ロードマップで依存関係を確認(例:「多要素認証」は「OAuth2.0対応」の後)
見積もりを設定
各イシューに見積もりを設定します。
# イシュー #123「OAuth2.0プロバイダー実装」
/estimate 2w
# イシュー #124「多要素認証UI実装」
/estimate 1w 3d
この時点で見えること
- ロードマップ上で、各エピックの期間と重なりが視覚的に確認できる
- ブロックされたエピックがあれば、アイコンで警告される
- フィルタで「今四半期」に絞ると、直近の作業に集中できる
2.2 実行フェーズ:時間追跡で実績を記録し、チャートで進捗を確認
やること
- 作業を開始したら、時間を記録する
- 毎日または毎週、バーンダウン・バーンアップチャートを確認する
- スコープの変更があれば、バーンアップチャートの総線で検知する
時間の記録例
田中さんがOAuth2.0プロバイダーの実装を開始しました。
UIから記録:
- サイドバーの「時間エントリを追加」を選択
- 「3時間」「2025-01-15」「プロバイダー基本実装」と入力
クイックアクションで記録:
プロバイダーのテストケースを追加
/spend 2h
コミットメッセージで記録:
OAuth2.0プロバイダーの認可エンドポイントを実装 #123 @4h
バーンダウン・バーンアップチャートの確認
スプリント開始から1週間後、マイルストーン「Q1スプリント1」のチャートを確認します。
バーンダウンチャート:
- 残りイシュー数が理想線より上にある → 遅れている可能性
- 残りイシュー数が理想線より下にある → 順調
バーンアップチャート:
- 総線が急に上がった → スコープが増えた(新しいイシューが追加された)
- 完了線が上がっていない → 作業が進んでいない
この時点で見えること
- 見積もりと実績の差異(イシュー #123は見積もり2週間、実績1週間で9時間)
- マイルストーンの進捗状況(残り何イシュー、何時間)
- スコープクリープの兆候(バーンアップチャートの総線の急増)
2.3 振り返りフェーズ:データから学ぶ
やること
- 時間追跡レポートで、見積もりと実績を比較
- バーンダウン・バーンアップチャートのパターンを分析
- 次のマイルストーンに反映
時間追跡レポートの分析
マイルストーン「Q1スプリント1」が完了しました。時間追跡レポートを確認します。
| イシュー | 見積もり | 実績 | 差異 |
|---|---|---|---|
| #123 OAuth2.0プロバイダー実装 | 2週間(80時間) | 1週間(45時間) | -35時間 |
| #124 多要素認証UI実装 | 1週間3日(56時間) | 2週間(80時間) | +24時間 |
| #125 パスワードポリシー強化 | 3日(24時間) | 3日(24時間) | 0時間 |
わかったこと
- OAuth2.0の実装は、既存のライブラリを活用できたため、見積もりより早く完了した
- 多要素認証UIは、デザインの調整に時間がかかり、見積もりをオーバーした
- パスワードポリシーは、見積もり通りに完了した
バーンダウン・バーンアップチャートの分析
バーンアップチャートを見ると、スプリント中盤で総線が急増しています。これは、セキュリティレビューで新しいイシューが追加されたためです。
次のマイルストーンへの反映
- UI実装の見積もりは、デザインレビューの時間を含めて1.5倍で計算する
- セキュリティレビューは、スプリント開始前に実施し、スコープを固定する
- ライブラリ活用の可能性を事前に調査し、見積もりに反映する
3. 実践のポイント
3.1 小さく始める
最初から完璧を目指す必要はありません。
- 1つのマイルストーンから: まずは1つのマイルストーンで時間追跡とチャートを試す
- 見積もりは大まかに: 最初は「小(1日)」「中(3日)」「大(1週間)」程度の粒度で十分
- 記録方法を統一: チームで記録方法を決める(UIかクイックアクションか)
3.2 定期的に確認する
データは見なければ意味がありません。
- デイリースタンドアップ: バーンダウンチャートを画面共有して確認
- 週次レビュー: バーンアップチャートでスコープの変更を確認
- スプリント振り返り: 時間追跡レポートで見積もり精度を確認
3.3 データを意思決定に使う
可視化は手段であり、目的ではありません。
- バーンダウンチャートが理想線より上 → リソース追加を検討
- バーンアップチャートの総線が急増 → 優先順位を再検討
- 時間追跡レポートで見積もりと実績の乖離が大きい → 見積もり方法を見直す
3.4 ロードマップでフィルタを活用する
多数のエピックがある場合、フィルタを使うことでパフォーマンスが改善します。
- ラベルでフィルタリング(例:「優先度:高」)
- グループでフィルタリング(例:「フロントエンドチーム」)
- フィルタ済みのURLをブックマーク
3.5 権限を理解する
時間追跡機能は、役割に応じて利用できる機能が異なります。
- 見積もりの追加、編集、削除: イシューとタスクではPlanner役割以上、マージリクエストではDeveloper役割以上
- 費やした時間の追加と編集: プロジェクトのPlanner役割以上
- 時間エントリの削除: 作成者本人、またはMaintainer役割以上
4. よくある課題と対処法
4.1 時間追跡が習慣化しない
対処法
- コミットメッセージでの時間追跡を有効にする(GitLab 18.3以降)
- デイリースタンドアップで「昨日何時間使ったか」を共有する
- 時間追跡レポートを定期的にレビューし、記録漏れを確認する
4.2 見積もりと実績の乖離が大きい
対処法
- 見積もりの粒度を細かくする(大きなイシューを分割する)
- 過去の実績データを参考にする
- バッファを含めた見積もりにする(例:実作業時間の1.5倍)
4.3 バーンダウンチャートが不正確
原因
バーンダウンチャートとバーンアップチャートは、日がUTCタイムゾーンであるという制限があります。他のタイムゾーンでは、イシューのクローズ時刻が翌日にずれる可能性があります。
対処法
- チームのタイムゾーンを統一する
- 日付のずれを考慮して、チャートを解釈する
4.4 コミットメッセージでの時間追跡の重複
原因
コミットのSHAが変更された場合(リベースや修正後など)、GitLabはそれを新しいコミットとして扱い、重複した時間エントリが作成される可能性があります。
対処法
- ブランチの履歴が確定してから、コミットメッセージで時間を追加する
- マージ前に時間追跡レポートを確認し、重複を削除する
- UIまたはクイックアクションで時間を追加する
5. まとめ:データがチームを強くする
GitLabのロードマップ、時間追跡、バーンダウン・バーンアップチャートは、プロジェクトを3つの視点から可視化します。
- ロードマップ: 戦略的な視点で、長期的な計画を俯瞰する
- 時間追跡: 実行の視点で、見積もりと実績を記録する
- バーンダウン・バーンアップチャート: 進捗の視点で、マイルストーンの状態をリアルタイムで把握する
これらを組み合わせることで、以下のサイクルが回り始めます。
- 計画: ロードマップで全体像を描き、見積もりを設定する
- 実行: 時間を記録し、チャートで進捗を確認する
- 振り返り: データを分析し、次の計画に反映する
データに基づいた意思決定ができるチームは、「なんとなく遅れている気がする」ではなく、「残り15イシュー、見積もり40時間、現在のペースだと3日遅れる」と語れます。この違いが、プロジェクトの成功確率を大きく変えます。
まずは次のマイルストーンで、時間追跡とバーンダウンチャートを試してみてください。1ヶ月後、チームの会話が変わっていることに気づくはずです。