« Retrospectivaをインストールしてみる | トップページ | Web2.0時代のプロジェクト管理 »

2008/09/14

Redmineインストールメモ

Redmineのインストールや設定に関するメモ。

【1】Passengerをインストールすると、RailsをApache単独で稼動できる。

http://redmine.jp/tech_note/apache-passenger/

gem install passenger
passenger-install-apache2-module

後は、httpd.confの設定だけすればいい。

Passengerの利点は、RailsがPerlやPHPと同じ感覚で運用できることだ。
今後のビジネスを考えると、RailsをJRubyで動かすか、Apacheで動かすか、どちらかが重要になるだろう。
要注目の技術だと思う。

【2】Wikiを使うには、下記を実行。

gem install RedCloth

 但し、活動欄に表示されるチケット内容は、Wikiのシンタックスがそのまま表示されてしまう。

【3】日本語文字化け対応

http://chocoapricot.cocolog-nifty.com/blog/2008/06/redmine_445a.html

この対応で、エクスポートしたCSVの文字化けが直った。

【4】マイカレンダーの表示を1週間→2週間に変更するパッチ

http://d.hatena.ne.jp/ywatase/20080506#p1

 ログイン直後の画面のカレンダーが2週間に広がる。

【5】Redmineで統計を表示する

http://chocoapricot.cocolog-nifty.com/blog/2008/06/redmine_75d8.html

(1) SVGを表示させるプラグインを入れる。

(2) SVGの日本語が文字化けしていたら、redmine/lib/SVG/Graph/Graph.rbを下記のように修正する。

・「font-weight: bold;」→「font-weight: normal;」
・「font-family: "Verdana", sans-serif; 」→「font-family: HGGothicM , Verdana, sans-serif; 」

 統計は、月別・開発者別のSVNリビジョン回数、SVNコミットファイル数を出力してくれる。
 statSVNの方がたくさん機能があるが、これだけでも、開発者の負荷が良く分かる。
 能力の高いプログラマは、3ヶ月という長期スパンでは、コミット回数もLOCも一番多くなる。

 開発者によると、個人成績みたいなものなのでプレッシャーがかかるらしいけれど。

【6】RedmineをJRubyで動かす

http://gihyo.jp/dev/serial/01/redmine-use/0007

 ただ今実験中。
 この運用が検証できたら、RailsをJavaで動かすのは問題なくなる。

【7】チケットとSVNコミットを関連付ける方法は2種類ある。

http://www.redmine.org/wiki/1/RedmineSettings

Redmineの設定欄にある「コミットメッセージ内でチケットの参照/修正」で「refs」と「fixes」を使い分けると、SVNコミット時にチケットのステータスと進捗率を自動更新することもできる。

実際の運用は下記になる。

7-1.チケットの仕様を実装中だが、一旦コミットしたい

修正中のステータスなので「refs」を使って
「~の理由でコミット refs 123」
と書く。

SVNリビジョンとチケットにリンクが張られるだけ。
チケットのステータスも進捗率も変わらない。

7-2.チケットの仕様を全て実装完了した

修正完了のステータスなので「fixes」を使って
「~の機能を実装 fixes 123」
と書く

SVNコミット時に、チケットの進捗=100%かつステータス=解決に変更されて紐付けられる

この運用を入れた理由は、開発者がSVNコミット時にチケットのステータスを変更し忘れることがなくなるから。

もう一つの理由は、SVNコミットログに修正ステータスも入れたいから。
そうすれば、リリース後にSVNコミットログを集計した時に、「fixes」「refs」の単語で何かしらのソフトウェアメトリクスを採取できるのではないか、と思うから。

ソフトウェア・リポジトリ・マイニングでは、SVNコミットログの精度が高いほど意味のあるメトリクスを採取できるはず。

【8】RedmineからTestlinkへリンクを張る
 但し、ver 0.7以降に限る。

http://groups.google.com/group/redmine-users-ja/browse_thread/thread/aa2bf808a682756f

この記事によって、RedmineとTestlinkの相互リンクが可能になる。
Redmineでリソース管理、Testlinkでテストケース管理(要件管理)と使い分ければ、下記のように要件からソースコードまで一貫してトレースできる。

要件(Testlink)
←→テストケース(Testlink)
←→チケット(Redmine)
←→SVNリビジョン(Subversion)

 チケットとテストケースのトレーサビリティを提供する重要な機能。

【9】Redmineに機能追加するプラグインがある。
 最も興味を惹くのは、工数表示の拡張プラグインと、継続ビルド環境の実行結果を表示するプラグインだ。

Timesheet

Simple CI

 engineプラグインのインストールに何度も失敗したが原因は、./vendor/railsのバージョンが古いこと。
 一度削除して、Rails2.0.2をインストールすると、engineプラグインが正常動作する。

 Timesheetはあくまでも検索結果の一覧表示だけ。
 欲を言えば、日別・トラッカー別・マイルストーン別に工数をSVGでグラフで表示して欲しい。
 バーンダーンチャートを表示する機能も作れるはず。
 そうすると、プロジェクト内部で発生した工数をリアルタイムに見える化できる。

 SimpleCIは、Feed先のContinuum、CruisoCotrollの実行結果を表示するだけ。
 でも、これによって、テストケースはTestlink、常時統合ビルド環境はSimpleCI、ソース管理はSubversionという風に、Redmineでアジャイル開発のインフラが全てリンクされる。
 今の僕が一番欲しかった機能で、Redmineがプロジェクトの統合管理ツールになるための重要な機能と考える。

【10】メール通知の設定は、config/environment.rb で行う。

http://redmine.jp/faq/general/mail_notification/

この設定によって、チケットのステータスが変更されるイベントで担当者へメールが飛ぶ。
この設定が意味を持つのは、メンバーの人数が多くて担当者が頻繁に変わる作業。

特にバグ修正では、設計者・開発者・テスト担当者・管理者の間で1個のチケットが渡り歩くため、メール駆動でなければ、管理者が逐一指示しなければならない。

開発者が5人以上の場合はメール駆動でなければ、プロジェクトリーダーはメンバーの指示だけで1日の仕事が終わってしまう。

つまり、少人数のチームがメール駆動でBTSを運営すれば、プロジェクトの進捗を管理するだけの管理者は不要になりうる。

【11】信頼度成長曲線を描くプラグインがある。

Redmineのプラグイン (3) ゴンペルたん

turnkのソースで、チケットを登録したり、SVGプラグインを入れたりしたけど、うまく動作しない。。
ソースをいじるしかないかな。。

とはいえ、チケット情報はDBにあるから、Accessでクロス集計すれば信頼度成長曲線は書けるはず。
更には、バーンダウンチャートも同様に作れるはず。

信頼度成長曲線から品質の歩溜りが推測できるし、SRATSに食わせれば、ソフトウェア障害のMTBFまで計算できる。

SRATS

ここでのMTBFは、次のバグが発見されるまでの時間だから、例えば3ヶ月以上になるならば、リリースしても大丈夫だろう、などのような判断ができるはず。

プロジェクトリーダーとしては、信頼度成長曲線は、システムの品質が今どれくらなのか、後どれくらいでリリース可能な品質になるのか、を探るための重要な指針になりうると考える。

【12】プロジェクトメニューにリンクを追加する方法が下記に書かれている。

http://chocoapricot.cocolog-nifty.com/blog/2008/07/redmine_1316.html

http://groups.google.com/group/redmine-users-ja/browse_thread/thread/a7c9a244ede8b1ea

メニューにガントチャートを追加することも可能。
実際の現場では、ロードマップとガントチャートでリアルタイムに進捗確認したいので、ガントチャートもプロジェクトメニューにある方が使いやすい。

【13】「RedMineのチェンジセットの検索機能でユーザIDも検索対象にする」記事が下記にある。

http://d.hatena.ne.jp/snaka72/20080717/1216268311

上記の修正で、SVNの特定ユーザのコミット履歴を見ることもできる。

実は、検索ボックスに「#チケットNo」を入力すると、直接チケットを開くことができる。
非常にうまく作られていると思う。

Redmineの実際のDBをPhpMyAdminで見ると、すごく綺麗なDB設計。
しかも、Ajaxが効果的に使われていて、ユーザビリティも良い。

例えば、マイページがドラッグ&ドロップで簡単にカスタマイズできたり、チケット一覧で右クリックするとコンテキストメニューのようにステータスや担当者などを一括更新できたりする。

実際のリポジトリを見ると活発に更新されているので、次期バージョン0.8も楽しみだ。

|

« Retrospectivaをインストールしてみる | トップページ | Web2.0時代のプロジェクト管理 »

プログラミング」カテゴリの記事

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

Redmine」カテゴリの記事

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: Redmineインストールメモ:

« Retrospectivaをインストールしてみる | トップページ | Web2.0時代のプロジェクト管理 »