« 電子書籍はSaaSの一つに過ぎない | トップページ | 30分でだいたいわかるアジャイル開発 »

2010/10/22

TracやMantisによるチケット駆動開発の運用方法

最近、RedmineではなくてTracやMantisを使う機会が多い。
チケット駆動開発をTracやMantisで運用する方法について考えたことをメモ。

【チケット駆動開発を運用する時の注意点】
Redmineでなくても、TracやMantisでもチケットをXPのタスクカードのように扱うことはできる。
BTSのチケット管理をプロジェクト管理に置き換える発想は、Redmineの場合と変わらない。

しかし、Redmineに比べると、TracやMantisによるチケット駆動開発とAgile開発を組み合わせて運用するためには、いくつかのノウハウが必要だ。
僕の経験では、Redmineに比べるとTracやMantisは、イテレーション管理とSCM連携がやりにくい。

【1】Agile開発の基本である小規模リリースを実現するには、イテレーションをBTSに実装しなければならない。
Redmineなら、バージョンがそのまま当てはまるのですごく自然だ。
しかし、そのイテレーションをTracやMantisへ当てはめるにはノウハウが必要。

その内容については以前書いた。

バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠: プログラマの思索

Agile開発の肝はイテレーションにあり: プログラマの思索

RedmineとTracの機能比較: プログラマの思索

Mantisの使い方: プログラマの思索

つまり、TracやMantisにもバージョンの概念はあるし、ロードマップの機能もあるので、それを流用すればいい。
例えば、Mantisのロードマップや変更履歴は下記のようになるから、バージョンをリリースしたバージョンでリネームする運用にすればいい。

ロードマップ - MantisBT

変更履歴 - MantisBT

Tracのロードマップも同様。

Roadmap -- WordPress Trac

【2】又、まちゅさんが発見したプラクティスである「No Ticket, No Commit!」のご利益を被るには、BTSにSCM連携の機能がなくてはならない。
Redmineなら、SCMリポジトリを簡単に閲覧できるだけでなく、「fixes」「refs」などのコミットログを使い分けるとステータスを自動更新できる機能があったり、チケット単位にSCMリビジョンの履歴を表示してくれたり、機能が豊富だ。

RedmineがExcelよりも素晴らしい点: プログラマの思索

チケット駆動開発でXPの計画ゲームを実施する: プログラマの思索

しかし、TracやMantisでは、コミットログとチケットNoをそもそも紐づける設定方法が結構面倒。
だから、サポートするためのいくつかの方法が必要だと思う。

Mantisなら下記のように、SVNコミットフックのスクリプトを用意して、MantisへログインするSVN用ユーザを作り、コミットするとコミットログのチケットNoがリンクする仕掛けを準備する必要がある。

mantis - バグ管理システム - SCMとの統合

むしろ、TortoiseSVNに元々付属しているBTSと連携する機能を使った方が楽だ。
その方法については、以前からよく知られている。

プロジェクト設定

Tracなら下記のやり方がある。

ソフト/Bug Tracking/trac/TortoiseSVNやSubclipseとチケットを連動 - discypus

TracDoc/TortoriseSVNTrac -- HirobeのHack倉庫 -- Trac

もちろんMantisでも方法は同様だ。

TortoiseSVNとITS・BTSの連携 - idesaku blog

※TortoiseSVNからBTSへ連携する方法については既に過去に調べているので、下記もご参考下さい。

TortoiseSVNからBTSと連携する: プログラマの思索

TortoiseSVN から Redmineと連携する: プログラマの思索

TortoiseHgもRedmineチケットへの接続をサポート: プログラマの思索

但し、MantisやTracでは、チケット単位にSCMリビジョンを表示してくれる機能はないみたい。
ソースからチケットNoを辿ることはできるけれど、チケットから関係するSCMリビジョンに辿るのは自動化されていないように思う。

SCM連携の利点は、要件からビルドモジュールまでのトレーサビリティを実現してくれることにある。
このトレーサビリティによって、機能追加の影響調査や障害修正時の同類バグ調査がやりやすくなる。
だから改善の余地はあると思う。

【3】でも、TracやMantisを使ってみて、Redmineとは違う発想のBTSなのだと思うようになった。

Tracはクエリ機能のおかげで、レポート出力の機能が豊富。
自分でSQLを書けば、いくらでも好きなレポートを出力できる。
そして、TracはBTSの中で最もWikiが書きやすい。
共有したい情報があれば、Wikiに自由に書いていけばいい。

Mantisは障害管理だけに使うならば、BTSの中で最強だと思う。
Mantisチケットのレイアウトはまさに障害報告票をWeb化した形式なので、テスターやプログラマは特に違和感なくBTSを運用できるだろう。
又、Mantisのチケット一覧は、ステータスごとに色分けしてくれるので、カラフルで見やすい。

各種BTSを触ってみた感想は、BTSの運用こそがSW開発の基本のような気がしたこと。
BTSの機能には、世界中の開発者のベストプラクティスが含まれている。
BTSには、過去のSW開発の歴史から得られたノウハウがたくさん詰まっているのだ。

|

« 電子書籍はSaaSの一つに過ぎない | トップページ | 30分でだいたいわかるアジャイル開発 »

Agile」カテゴリの記事

Git・構成管理」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

チケット駆動開発」カテゴリの記事

プロジェクトマネジメント」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/49479/49817037

この記事へのトラックバック一覧です: TracやMantisによるチケット駆動開発の運用方法:

« 電子書籍はSaaSの一つに過ぎない | トップページ | 30分でだいたいわかるアジャイル開発 »