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に機能追加するプラグインがある。
最も興味を惹くのは、工数表示の拡張プラグインと、継続ビルド環境の実行結果を表示するプラグインだ。
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】信頼度成長曲線を描くプラグインがある。
turnkのソースで、チケットを登録したり、SVGプラグインを入れたりしたけど、うまく動作しない。。
ソースをいじるしかないかな。。
とはいえ、チケット情報はDBにあるから、Accessでクロス集計すれば信頼度成長曲線は書けるはず。
更には、バーンダウンチャートも同様に作れるはず。
信頼度成長曲線から品質の歩溜りが推測できるし、SRATSに食わせれば、ソフトウェア障害のMTBFまで計算できる。
ここでの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も楽しみだ。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「Redmine」カテゴリの記事
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- 第27回redmine.tokyo勉強会の感想 #redmineT(2024.11.10)
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
コメント