Trac + SVN + IRC の良さ

ちょっと考える機会があったのでメモ。僕の仕事環境だと、Trac, SVN, IRC(, あとplagger) を中心に開発している。

これらを使っていて思うこと

Trac と連動しているとタスク管理が楽だよねー!……違うよ!全然違うよ!それだけなんて勿体ない > <
↑ぶっちゃけ最初はこう思ってた。

とはいえタスク管理(Trac)
  • チケット書くことでタスクを細かく分割しようとする
  • チームの人同士進捗が見られる
    • ロードマップ機能で長期マイルストンの管理も
ロールバックできる(SVN)
  • なんか変な修正したけどどこ変えたか忘れた
  • ファイル消したーーーー!
  • そこでsvn revert ですよ!
SVN diff で良質なコードを(SVN)
  • 前回のコミットから変更したコードだけをレビューできる
  • 変なコードがあったら修正してからコミット
チケット駆動開発(Trac + SVN)
  • コードに時間の概念を導入できる
    • なんでこのコードがあるの?って思ったら、そのコードが追加された際のChangeset を見ればいい
    • そのコードと一緒にコミットされたコードが分かり、影響範囲とかも分かる
    • さらにチケットを見ると詳細な理由が分かる
      • 大きな仕様ならwiki に書いてそこにリンクを貼ればいい
  • 逆に、チケットからコードを引くこともできる(逆引き)
    • 自分にとっても超便利
  • コードが空間的には一箇所にまとめられるので管理が楽
  • Trac には検索機能がある
  • コードへのコメントが楽
    • チケットへのリンクをコメントにすればいい
  • 引き継ぎが楽
    • どのコードがどういう要求に対して書かれたか分かるので改めて説明する必要がない
    • 引き継いだ経験も引き継がれた経験もあるけど非常に楽だった
  • 過去のバグが分かる
    • type = defect でチケット検索とか
自動ビルド+通知(SVN + IRC)
  • SVN はコミットに対してフックを定義できる
    • コミットフックしてステージングサーバでビルドテスト
    • その結果をIRC に通知
  • IRC は即時性が高い
    • 皆が一斉に閲覧することになる
ツールを使う上で要求されること
  • ツールの設定
    • ぶっちゃけplagger の仕組みはいまいち分かっていない
  • 連携の設定
  • 正しいチケット、wikiの書きかた
    • タイトルとかタイプとかきちんと書いてないと何の役にもたたない


まぁ、色々あるけど、単純に楽しい。今回これだけチケットclose したなぁーとか、やっとコミットできたぜー!とか
楽しい大切!仕事の内容は同じでも、それをつまんなくやるか楽しくやるかはやる側の自由だし!楽しさの追求には貪欲になっていいと思う!

↑ん?これが言いたかっただけかも