チケット駆動開発
タスクマネジメントからAgile開発へ
  Part2
デブサミ2011 17-B-3
2011/2/17

小川明彦@XPJUG関西
小川明彦
(copyright2011 akipii@XPJUG関西)

1
Agenda
Agile開発の課題
チケット駆動開発とは
チケット駆動開発の運用サイクル
TiDD運用後

TiDDでAgile開発を実践する方法
【1】タスク管理をデジタル化
【2】自然な変更管理
【3】並行開発

TiDDをAgile化する4ヶ条
まとめ
(copyright2011 akipii@XPJUG関西)

2
Agile開発の課題
頻繁に変わるタスク管理
頻繁なリリースでタスク管理が大変
アナログのPostIt、かんばんだけでは進捗管理しづらい

継続的な修正と頻繁なリリース管理
継続的な修正と頻繁なリリース管理
と頻繁なリリース
継続的なリファクタリングや機能追加を制御するのは難しい
短期間に順次リリースするプロセスはやっぱり大変

本番運用と開発中の2本のコードラインを持つ並行開発
本番運用と開発中の 本のコードラインを持つ並行開発
本のコードラインを持つ
一度リリースしたソースは
 本番ブランチとして生き続ける
常に本番運用・開発中の
 二つのコードラインを
 保守するのは大変

かんばん
(copyright2011 akipii@XPJUG関西)

3
チケット駆動開発とは
チケット駆動開発はTracのチケット管理から生まれた(まちゅさん)
http://www.machu.jp/diary/20070907.html#p01

正式名称:Ticket Driven Development (まちゅさん)
BTS/ITSを障害管理だけでなくタスク管理に使う(まちゅさん)

チケット駆動開発の運用ルールは二つだけ
BTSチケットはXPのタスクカードのように扱う(阪井さん)
チケットはSW開発の作業指示書 (Ticket First)

BTSチケットに構成管理情報を付与する
チケット無しのソースコミット不可 (No Ticket, No Commit !)

(まちゅさん)

BTSの運用対象を
の運用対象を
拡大する
(copyright2011 akipii@XPJUG関西)

4
チケット駆動開発の運用サイクル

ユーザ

PL

次バージョンへ
バージョン登録
問合せ
Redmine

チケット更新
集計表示

バージョンClose
バージョン
開発チーム
PG

(copyright2011 akipii@XPJUG関西)

5
TiDD運用後
プロジェクトの問題や進捗を見える化できた
残タスク、進捗率がリアルタイムに一目瞭然
プロジェクトのゴールや問題点をチームで共有できる

TiDDが自然に
が自然にAgile開発になった(あきぴー)
が自然に
開発になった
XPの小規模リリースを自然に運用できた
チケットの取捨選択こそがXPの計画ゲーム
チケットの取捨選択こそが の計画ゲーム
チケットの取捨選択が本来のマネジメント(えと~さん)

開発のリズムが生まれた
イテレーション単位でリリースするから開発のリズムが生まれる
開発者の評判もいい

朝会、リリース後のふりかえりを運用しやすい
チケットによるワークフローが自然にペア作業になる

(copyright2011 akipii@XPJUG関西)

6
TiDDでAgile開発を
実践する方法

(copyright2011 akipii@XPJUG関西)

7
【1】タスク管理をデジタル化
XPのタスクカードをデジタル化する(阪井さん)
チケットへ作業内容、進捗情報を付与する
チケットの枚数の物理的制限がない

計画に基づかない突然のタスク管理がやりやすい
BTSは本来、突然発見したバグの管理のためのツール
プロジェクト管理をチケット管理に置き換えることでマネジメントを見える化する

XP

BTS

かんばん

チケット一覧
置き換え
チケット

タスクカード

(copyright2011 akipii@XPJUG関西)

8
強力なチケット集計機能
BTSチケット集計結果をかんばんのように扱う(阪井さん)
XPのタスクボードは最新化・集計が面倒
TiDDは、BTSに仕様や進捗の情報を集約できる
進捗や品質、コストに関するメトリクスをいくらでも出力できる

かんばん
(copyright2011 akipii@XPJUG関西)

9
小規模リリース
2~4週間の間隔で、小刻みに
機能拡張しながらリリースする
進捗が100%になったらリリー
ス可能になる
ビルドモジュールのリリース予
定バージョンがイテレーション
に相当する

(copyright2011 akipii@XPJUG関西)

10
小規模リリース
2~4週間の間隔で、小刻みに
機能拡張しながらリリースする
進捗が100%になったらリリー
ス可能になる
ビルドモジュールのリリース予
定バージョンがイテレーション
に相当する

リリース済バージョン、終了チケット
は変更履歴に残る

自然に繰り返し開発
になるのがポイント

(copyright2011 akipii@XPJUG関西)

10
【2】自然な変更管理

ロードマップをリリース計画のように扱い、小規模リリースを
運用する開発プロセス
Redmineによるチケット駆動開発は、XPの開発ライフサイクルに似た
アジャイル開発
(copyright2011 akipii@XPJUG関西)

11
ワークフローで変更管理

(copyright2011 akipii@XPJUG関西)

12
ワークフローで変更管理
ソフトウェア開発のワークフローは
BTSのワークフロー機能で
制御できる

ユーザ権限と
チケット種類の単位で
ステータスの現在・移行先を指定する

ステータスの移行先

現
在
の
ス
テ
ー
タ
ス

(copyright2011 akipii@XPJUG関西)

12
SCM連携でトレーサビリティ

(copyright2011 akipii@XPJUG関西)

13
SCM連携でトレーサビリティ
No Ticket, No Commit!
チケット無しのソースコミット不可!
→チケットにソース修正履歴が残る

(copyright2011 akipii@XPJUG関西)

13
チケットの親子関係で要件管理
親チケット=ストーリーカード、
子チケット=タスクカード   でグループ化する

(copyright2011 akipii@XPJUG関西)

14
チケットの親子関係で要件管理
親チケット=ストーリーカード、
子チケット=タスクカード   でグループ化する

親チケットの
属性に
子チケットの
情報を
ロールアップ

親チケットから
詳細を
子チケットへド
子チケットへド
リルダウン

(copyright2011 akipii@XPJUG関西)

14
【3】並行開発
Agile開発は自然に並行開発になる
開発は自然に並行開発になる

(copyright2011 akipii@XPJUG関西)

15
リリースブランチとタスクブランチ

ブランチのタスク管
理をTiDDで運用す
理を
で運用す
る

(copyright2011 akipii@XPJUG関西)

16
TiDDでAgileに開発する4ヶ条

1. チケットはタスクカードのように扱う
Ticket First

2. チケットに構成管理情報をリンクさせる
No Ticket, No Commit !

3. イテレーションをチケットのリリース予定バー
ジョンに対応付ける
小規模リリース

4. BTSプロジェクトはビルドモジュール(コンポー
ネント)ごとに作る
並行開発

(copyright2011 akipii@XPJUG関西)

17
まとめ

ツールがサポートすれば、
ツールがサポートすれば、
行動が変わっていく。
行動が変わっていく。
行動が変われば
が変われば、
行動が変われば、
考え方も変わっていく。
考え方も変わっていく。
考え方が変われば
考え方が変われば
チームも変わっていく。
人もチームも変わっていく。

チケット駆動開発でアジャイル開発を実践してみよう
BTSがあれば誰でも運用できる
「Ticket First」「No Ticket, No Commit !」から始めよう
(copyright2011 akipii@XPJUG関西)

18

デブサミ2011(17-B-3)講演資料「チケット駆動開発~タスクマネジメントからAgile開発へ」