2006年09月21日

trac + TracBurndownプラグインでスクラム開発のすすめ


ソフトウェア開発手法とその管理システムには様々な選択肢がある。私もこれまで色々試行錯誤してきたのだが、今は、tracとバーンダウンチャートを追加するプラグインであるTracBurndownプラグインでスクラム開発という環境が気に入っている。

この環境を導入したきっかけは、転勤で勤務地が変わったことである。
これまで、東京でチームを組んでソフトウェア開発をしており、その仕事を引き続き仙台で行うことになったが、今までの開発プロセスだと不都合が出始めた。

タスクカードを使った「かんばん方式」とスクラムをベースにした開発プロセスを組み合わせて使っているのだが、物理的に開発拠点が分離してしまい、タスクカードが使いにくくなってしまったのである。

いいタイミングなので、周囲の評価が高いので試してみようと構築していたtracにバーンダウンチャートのプラグインを導入して、全面的に移行することにしたという訳だ。

tracにTracBurndownプラグインを導入すると、どうなるのかを簡単に説明しておく。
まず、メニューバーにBilling And EstimationとBurndownという項目が追加される。

tracのメニューバー

このBurndownをクリックすると次のようにバーンダウンチャートが表示される。

tracのバーンダウンチャート画面

また、工数を入力するところはチケットの詳細ページに追加される。

tracの工数入力画面

チケットを登録するときにEstimated Hours?に見積もり時間を入力する。後は、1日ごとに実際にかかった工数をHours to Addに入力していくと、Total Hoursに加算される。このデータがバーンダウンチャートに反映されていくことになる。

実際に使ってみての印象だが、スクラムをベースに開発をしているなら、かなり使いやすいのではないだろうか。
特にExcelでバックログとバーンダウンチャートを管理していたときは、タスクカードの状態をバックログに反映するのが手間だったのだが、tracに移行してからは自動化されたので助かった。
もともとtrac自体が非常に使いやすいし、動作も安定しているようなので、trac + TracBurndownプラグインの環境はおすすめである。

構築したときに手順をメモしたので、ここで公開しておく。

私の場合、tracの環境はDebian sargeがインストールしてあるサーバで、ここで説明している手順の中にはDebian特有のものもあるので注意してほしい。


tracを更新する


古いバージョンのtracでは、この後必要になるTiming And Estimationプラグインが動かないためtracのバージョンを0.10b1に更新する。

$ wget http://ftp.edgewall.com/pub/trac/trac-0.10b1.tar.gz

$ tar zxvf trac-0.10b1.tar.gz

$ cd trac-0.10b1

$ python setup.py install --force


更新後、tracのページにアクセスするとエラーメッセージが出るはず。

Available Projects

* プロジェクト名: Error
(The Trac Environment needs to be upgraded. Run trac-admin プロジェクトのパス upgrade")


メッセージのとおりにtrac-adminを使って環境を更新する。

$ trac-admin プロジェクトのパス upgrade



python-setuptoolsを入れ替える


Debian sargeに入っているpython-setuptoolsだと、WebAdminプラグインなどを正常にインストールできないようなので、python-setuptoolsを入れ替える。

まず、インストール済みのpython-setuptoolsを削除する。

$ apt-get remove python2.3-setuptools


新しいsetuptoolsをダウンロードしてインストールする。

$ wget http://peak.telecommunity.com/dist/ez_setup.py

$ python ez_setup.py



WebAdminプラグインをインストールする


WebAdminプラグインは、trac-adminの機能をブラウザから操作出来るようにするtracプラグインで、これをインストールしておくと、後の作業が楽になる。
WebAdminプラグインをwgetなどを使ってダウンロードする。

$ wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.1dev_r2765-py2.3.egg.zip?format=raw

$ mv TracWebAdmin-0.1.1dev_r2765-py2.3.egg.zip\?format\=raw TracWebAdmin-0.1.1dev_r2765-py2.3.egg


eggをpythonのsite-packagesディレクトリにコピーする。
$ cp TracWebAdmin-0.1.1dev_r2765-py2.3.egg /usr/lib/python2.3/site-packages/


tracプラグインを有効にするため、trac.iniに以下を追記する。
[components]
webadmin.* = enabled


後は、WebAdminを利用したいユーザにWebAdminのパーミッションを次のように追加する。

$ trac-admin プロジェクトのパス permission add ユーザ名 TRAC_ADMIN


これで、パーミッションを持ったユーザでアクセスすると、メニューバーに「Admin」が追加されているので、クリックすると管理画面が表示される。


Timing And Estimationプラグインを導入する


Timing And Estimationプラグインは、tracのチケットに見積もり時間と実績時間などを追加するtracプラグインで、TracBurndownプラグインで利用する。

$ unzip timingandestimationplugin.zip

$ cd timingandestimationplugin

$ python setup.py install


後は、WebAdminの管理画面でプラグインを有効にすればいい。

WebAdminのTiming And Estimationプラグイン設定


TracBurndownプラグインを導入する


TracBurndownプラグインは、tracにバーンダウンチャートを表示する機能を追加するtracプラグインで、今回の目的はこれである。

TracBurndown-01.00.10-py2.3.eggをダウンロードしてpythonのsite-packagesディレクトリにコピーする。

$ cp TracBurndown-01.00.10-py2.3.egg /usr/lib/python2.3/site-packages/


Timing And Estimationプラグインと同様に、WebAdminの管理画面からTracBurndownプラグインの機能にチェックを付けて有効にする。

WebAdminのTracBurndown設定

後は、TracBurndownプラグインを利用するユーザにパーミッションを追加すれば、TracBurndownプラグイン自体のインストールは完了である。
参照だけのユーザにはBURNDOWN_VIEW、管理ユーザにはBURNDOWN_ADMINを追加すればいい。

パーミッションはWebAdminで追加することができる。

WebAdminのパーミッション設定画面

Subjectにユーザ名を入力して、Actionから追加するパーミッションの種類を選べばいい。

WebAdminを使わずにコンソールからtrac-adminで設定する場合には、次のようにする。

$ trac-admin プロジェクトのパス permission add ユーザ名 BURNDOWN_VIEW

$ trac-admin プロジェクトのパス permission add ユーザ名 BURNDOWN_ADMIN


cronを設定する


実はこれだけだとバーンダウンチャートが更新されない。cronなどを利用して更新するためのスクリプトを定期的に実行する必要がある。
※最新版では、cronの設定は不要になっているとのこと。コメントありがとうございます。>Yuito Kanzakiさん

バーンダウンチャートを更新するスクリプトをpythonで実行可能なディレクトリにコピーしておく。

$ cp burndown_job.py /usr/lib/python2.3/


次に、cronから実行するスクリプトを用意する。ここでは一日一回、更新されるようにcron.dailyにスクリプトを記述する。

$ emacs /etc/cron.daily/trac


#!/bin/sh

/usr/bin/python /usr/lib/python2.3/burndown_job.py プロジェクトのパス


実行権限を付けるのを忘れずに。

$ chmod 755 /etc/cron.daily/trac


これでtrac + TracBurndownプラグインの環境構築は完了である。興味のある方はぜひ試してみてほしい。


posted by cuckoo at 12:45 | Comment(2) | TrackBack(2) | 雑記
この記事へのコメント
最近tracに興味を持ち、参考にさせて戴きました。
以下のURLにburndown_job.pyの削除に関する既述が在りました。すでに最新版のburndownではcronの設定は不要のようです。
http://trac-hacks.org/changeset/2214
Posted by Yuito Kanzaki at 2007年08月16日 16:21
コメントありがとうございます。&レスポンスが遅くてすみません。
cron設定するのが面倒だなあと思っていたので、それだけでも最新版に入れ替える価値がありますね。記事に反映しておきます。
安定稼働しているとなかなか、踏ん切りがつかなくてそのままでしたが、更新してみることにします。
Posted by cuckoo(管理人) at 2007年12月17日 19:06
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※半角英数字のみのコメントは投稿できません。

この記事へのトラックバック

Tracで作業時間収集とバーンダウンチャート
Excerpt: Trac月でTimingAndEstimationPluginとScrumBurndownPluginを導入する手順を簡単にまとめます。 TimingAndEstimationPlugin http:..
Weblog: 関連ブログ
ERROR: NOT PERMITED METHOD: blog_name I html
Tracked: 2007-06-07 18:50

trac0.12 で Timing And Estimation と ScrumBurndown
Excerpt: trac0.12 で Timing And Estimation と ScrumBurndown をダウンロードしてみる。 導入の目的は、各タスクにかかった時間を記録することで予定と実績の差が把握でき..
Weblog: sylvan
ERROR: NOT PERMITED METHOD: blog_name I html
Tracked: 2008-07-26 23:07
タグクラウド