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) | 雑記
タグクラウド

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。