Software Engineering Center Information-technology Promotion Agency, Japan 特別セミナー 2012 年 04 月 11 日 Redmine, Trac を使った 定量的プロジェクト管理ツール の紹介 独立行政法人情報処理推進機構技術本部ソフトウェア エンジニアリング センター 研究員大和田裕 Copyright 2012 Information-technology Promotion Agency, Japan. All rights reserved.
Agile 開発におけるプロジェクト管理の課題 リアルタイムなタスク管理 反復開発計画 ( イテレーション スプリント,..) が頻繁に変更される 機能追加やバグ修正 リファクタリングによるソースコード修正に対応したタスク管理が必要 ソースコードの二重管理 リリース済みのソースコードと 開発中のソースコードの同時管理が必要 変更管理とバージョン管理の連携 継続的な機能追加に対応した 仕様変更と連携したバージョン管理が必要 1
Redmine,Trac を使った Agile 開発 ~ 開発プロセス効率化の一例 ~ 2
Redmine,Trac とは オープンソースのプロジェクト管理ソフトウェア 障害管理システム (Bug Tracking System) として使用 バグの情報をチケットで一元管理 チケットのステータス遷移で制御 終了チケットを履歴として残す 課題管理システムへ (Issue Tracking System) 障害だけでなく 課題や要望に使用 バージョン管理システムとの連携 チケットとリビジョンを紐付 チケット駆動開発へ (Ticket Driven Development) 作業をタスクに分割し チケットに割り当てる 3
チケットとは 担当者が割り振られ その作業に 登録, 担当者割り当て, 作業中, 完了 などの状態がある作業 4
Agile 開発への適用 設計 設計 設計 設計 開発 開発 開発 開発 テスト テスト テスト テスト ( 反復単位 ) ( 反復単位 ) ( 反復単位 ) ( 反復単位 ) 第一リリース 第 m リリース チケットをタスクカードとして使用 作業履歴 進捗 バージョン管理情報を付与 作業 / 課題指示書 チケットをグループ分け リリース単位 ( バージョン ) 反復単位 ( マイルストーン ) チケット一覧をタスクボードとして使用 5
チケット一覧 タスクボードとして使用 使用者によって View を切替 帳票として (PDF,Excel) 出力 6
チケット駆動開発の利点 開発者は 自分に割り当てられているタスクやリスクを明確に知ることができる 開発者は 割り当てられたチケットの必要項目に入力するだけなので 作業報告を省力化できる 管理者は 進捗やリスクについての収集作業を省力化できる 管理者は プロジェクト管理機能によって残タスク 進捗率をリアルタイムに見ることができる 変更や履歴の追跡 ( トレーサビリティ ) ツール連携 (Wiki 構成管理ツール ビルド管理ツール ) 7
チケット駆動型のプロジェクト管理 簡単に参加 利用 操作できる 開発者は担当作業 課題のチケットを登録 更新するだけ プロジェクト情報の一元管理 チケットによるプロジェクト管理 進捗や品質のメトリクスへ集計 プロジェクト管理の問題を機能へ 開発ツール構成管理ツール マネージメント機能の実装 開発 報告作業をサポート PM の意思決定をサポート 8
定量的プロジェクト管理ツールの紹介 9
ツール提供の背景 10
見える化の必要性 インフラ基盤としての高信頼性の要求 要求の多様化 高度化 市場競争の激化 レポーティング.. 開発の多様化 高機能化開発の短期間化 低コスト化 法対応 リスク対策などの社会的要請 課題管理.. 進捗管理.. 品質確保.. 高難易度となったプロジェクト マネジメント作業を支援するが必要 11
開発の多様化 短期間化 低コスト化 開発フレームワーク 開発ツールを利用 既存アプリケーションの再利用 変更 / 追加部分のみの開発 機能 アプリケーションの分割開発 外部発注開発 オフショア開発 プロジェクトの状況把握が困難品質がバラつき全体品質管理が困難問題解決の判断遅延 定量的なデータに裏付けられた 網羅的 統一的なプロジェクト マネジメントが必要 12
見える化と定量的プロジェクト管理 開発プロジェクトの 見える化 定性的な 見える化 アプローチ 俯瞰図 プロジェクト成否要因の明確化 チェックシート 見落としの排除リスクの明確化 失敗事例集 失敗から学んで失敗を防止 実践の場プロジェクト 分類表 客観的 網羅的に問題箇所を把握 統合的アなプ ロ見ーえチる化 定量的プロジェクト管理ツールとして公開 測定項目リスト 測定分析データ一覧表 ベース尺度一覧表 定量的な 見える化 アプローチ プロジェクトの状況を定量的に把握 定量的プロジェクト管理ツール データの自動収集分析 診断 見える化 すると 品質の予測 要求分析 設計の品質予測プロダクトの品質予測プロジェクトの品質予測 定量的プロジェクト管理ツール分析 診断 品質予測予実管理 進捗予測プロジェクト管理 定量的プロジェクト管理 データ蓄積 基準値参照値 ベンチマーキング ベンチマークデータ 蓄積データからの基準値 業界の傾向を示す参照値 13
定量的管理の課題 定量データの収集に工数がかかるため進行中プロジェクトの定量的診断が行えない 定量データの自動収集日次業務での定量データの収集を可能に 定量データ分析のノウハウが乏しく手間がかかりプロジェクト遅れ予測などを簡単に行えない 統計グラフ描画による 視覚的 直観的な分析 診断 定量的プロジェクト管理ツールに実装 プロジェクト管理機能と定量的分析 診断機能を一体で提供 Excel 等のデータをインポート 管理するツールの環境が整っていない各プロジェクトで個別の Excel などを使用 データを蓄積による社内基準値の作成 プロジェクトを定量的に診断するための基準値を持っていない 14
定量的プロジェクト管理の業務 KKD( 勘 経験 度胸 ) から ツールによるに基づいたプロジェクト管理へ 版管理 ( ソースコード ) 課題管理 ( 障害 課題 ) 進捗管理 ( 計画と実績 ) 定量的プロジェクト管理ツール ソース規模の推移 定量データ 工程別の障害件数 不良発生原因 発生箇所 計画値との比較による進捗 システムの の取得 ソースを 課題や進捗を 対策計画診断実施 課題の把握 プロジェクトの進捗を課題の把握 将来進捗をの作成 プロジェクト計画値の 15
定量的プロジェクト管理ツールとは プロジェクト タスクの進捗, 課題 障害の解決状況, 工数等の把握を定量的データにより行い 中小規模プロジェクトでのするツール 工数 タスク 進捗 障害 課題 収集 複数プロジェクト俯瞰 定量的データの収集 定量的プロジェクト管理ツール プロジェクトの可視化 グラフ化 負荷管理 集計 タスク 品質管理 障害 課題管理 可視化 16
定量的プロジェクト管理ツールの特徴 グラフ表示による視覚的 直観的な分析 診断機能の提供 ダッシュボード表示 ドリルダウン ドリルスルー表示 利用者によるグラフ カスタマイズ 定量的データの自動収集 プロジェクト管理ツール 構成管理ツール 日常使用ツールからの日次業務データの取り込み Excel, MS Project, CSV 等からのデータ収集 ツールが簡易に利用できることを重視 基本測定量 ( 規模 工数 工期 品質 ) に絞って提供 高度で複雑な利用方法は将来の拡張 柔軟性 拡張性の確保 利用者による定量データの追加など オープンソースとして公開 (GPL) 既存ツールを活用 Redmine Trac Subversion GIT BIRT(BI ツール ) Pentaho(ETL ツール ) 17
定量的プロジェクト管理ツールの概要図 近日公開 プロジェクト管理支援機能 データ収集 集計起動 定量的分析 診断呼出 プロジェクト管理プラットフォーム (Redmine,Trac,Subversion,GIT) 設定管理機能 プロジェクト管理プラットフォームチケット データ収集機能 ETL ツール (Pentaho) データ集計機能 定量データ 複数プロジェクト俯瞰表示機能 プロジェクト俯瞰表示機能 個別グラフ表示機能 BI ツール (Eclipse BIRT/BIRT Report Viewer) グラフ表示データ 公開中 18
稼働環境 サーバ Redmine/Trac Subversion/GIT Pentaho BIRT Report Viewer PostgreSQL Web/ アプリケーションサーバ (Apache) サーブレットコンテナ (Tomcat) CentOS Ubuntu Linux Windows Server Windows7 Professional Web アクセス クライアント Internet Explorer FireFox 19
チケットについて 20
チケットへの追加項目 項目 試験数計画 試験数実績 SLOC 計画値 想定バグ密度 試験項目密度指標値 _ 上限値 試験項目密度指標値 _ 下限値 WBS 番号 WBS チケット 概要 試験実施の WBS で試験項目数の計画値を入力 試験実施の WBS で試験項目数の実績値を入力 製造の WBS でソースコードの行数の計画値を入力 試験工程の親チケットとなる WBS でその試験工程の想定バグ密度を入力 ( 件 /KSLOC) 試験工程の親チケットとなる WBS で その試験工程における試験項目密度の指標値の上限値を入力 ( 件 /KSLOC) 試験工程の親チケットとなる WBS で その試験工程における試験項目密度の指標値の下限値を入力 ( 件 /KSLOC) WBS 番号を入力 課題 障害の発生した WBS チケット ID を入力 課題 障害チケットと WBS チケットの関連付け 複数の WBS チケットに関連付けはできない 21
課題チケット 22
障害チケット 23
WBS( タスク ) チケット 24
チケット レポートの一覧 25
チケットの一覧 26
チケットのガントチャート表示 27
提供グラフについて 28
表示グラフ一覧 WBS( タスク ) 品質管理 試験計画項目密度 WBS 進捗推移 WBS 進捗変化 EVM 評価 ( 進捗 工数 ) ソフトウェア規模推移 試験進捗率 工数の予実 遅延重要タスク抽出 障害 課題管理 障害件数変化 障害解決予測 障害原因分析 障害発生密度 障害滞留状況 長期未解決課題抽出 要員負荷管理 負荷状況 プロジェクトを俯瞰するグラフ 定量管理ダッシュボード複数のグラフを縮小表示して プロジェクト状況を俯瞰 複数プロジェクトを俯瞰するグラフ 複数プロジェクトの進捗確認 健全性確認 29
WBS( タスク ) 品質管理のグラフ (1/4) 試験計画項目密度 試験項目のカバレッジを確認する 試験進捗率 試験項目がモジュールごとにどの程度消化されているかを示す 30
WBS( タスク ) 品質管理のグラフ (2/4) WBS 進捗推移 過去の進捗の進み具合を描画し 開発の進み具合を把握する WBS 進捗変化 最近の開発進行度 ( 変化分の大きさ ) を確認する 31
WBS( タスク ) 品質管理のグラフ (3/4) EVM 評価 EVM により最近の開発価値とコストを把握する ソフトウェア規模推移 ソース行数による規模の推移 及び計画値との対比を行う 32
WBS( タスク ) 品質管理のグラフ (4/4) 工数の予実 開発工数の予実把握を行い 完了時の工数を予想する 遅延重要タスク抽出 開発が遅れている WBS( タスク ) を抽出する 33
障害 課題管理のグラフ (1/3) 障害件数変化 課題の件数 未解決数の推移 計画値との対比を把握する 障害解決予測 課題の未解決数と解決生産性から 解決完了日を推定する 34
障害 課題管理のグラフ (2/3) 障害原因分析 現在の障害の数を原因別に分類する 障害発生密度 どのモジュールの品質が悪いのか把握する 35
障害 課題管理のグラフ (3/3) 障害滞留状況 長期間解決されていない障害を抽出する 長期未解決課題抽出 長期間解決されていない課題を抽出する 36
負荷管理のグラフ 負荷状況 開発グループ / 開発者の負荷を把握する 37
プロジェクトを俯瞰するグラフ 定量管理ダッシュボード 担当プロジェクトの全体を俯瞰する 38
複数プロジェクトを俯瞰するグラフ 複数プロジェクトの進捗確認 担当プロジェクト / サブプロジェクトで リスクのあるものを検出する 複数プロジェクトの健全性確認 担当プロジェクト / サブプロジェクトのリスクを俯瞰する 39
画面レイアウト 共通機能 グラフ表示領域 ナビゲーション領域 HIDE/SHOW で切替 40
共通機能 操作バー パラメータ変更 エクスポート ファイル出力 印刷 パンくずリスト表示領域 41
IPA( 独立行政法人情報処理推進機構 ) http://www.ipa.go.jp/ ( ソフトウェア エンジニアリング センター ) http://sec.ipa.go.jp/ 研究員大和田裕 y-oowada@ipa.go.jp ご清聴ありがとうございました 参考文献入門 Redmine 第 2 版 Linux/Windows 対応 前田剛 株式会社秀和システム Redmineによるタスクマネジメント実践技法 小川明彦, 阪井誠 翔泳社入門 Trac 第 2 版 Linux/Windows 対応 高山恭介 株式会社秀和システム Redmineコミュニティ (Shinagawa.redmine) 勉強会発表資料 Tracコミュニティ (Shibuya.trac) 勉強会発表資料 42