torutkのブログ

ソフトウェア・エンジニアのブログ

Redmine勉強会(redmine.tokyo)参加

Redmineのコミュニティであるredmine.tokyo(旧shinagawa.redmine)主催の勉強会(通算7回)が開催されました。各セッションの資料・動画は勉強会ページ(次のURL)から辿れます。
http://redmine.tokyo/versions/13

講演は、アンチパターンRedmineサーバの統合、LT、そしてオープンディスカッションがありました。
以下、Redmine活用にヒントになったことなどを五月雨メモします。

松谷さん(@mattani)

  • Redmineは柔軟性の高いツール、使うためにコツがいる
  • Redmineに慣れた人がチケットを作ってあげるのは一見Redmine推進があるようで逆効果、各自に作ってもらって慣れさせる、重複気にせず作ってもらう、不要ならあとで破棄すればいい
  • Excelの課題管理とかは担当者記載したらほぼ固定、チケットなら人を担当者にして随時担当者を変えてよい
  • 「レビュー待ち」ステータス設け、担当を承認者にする、承認者はクローズするときは根拠を書く
  • 塩漬けチケット対策、必ず期限を書く(仮期限でもよい)、期限ないチケットはやらなくてよいことにすれば期限を書くようになる、中長期バージョンを定義してというのもあり
  • プロジェクトの設け方、チームが違えば別プロジェクト
  • ロードマップを使いこなす
  • 小さいチームならワークフローなくて(緩くて?)いい
  • 半日かかる作業、リポジトリをいじる作業は必ずチケット化
  • 大きなチケットは流れが変わるときに別チケットにする

あきぴーさん(@akipii)

  • 完了基準を決める、基準はチームの成長とともに変わっていく
  • CCBパターン、プロジェクト階層を設け、チームごとのサブプロジェクトを子階層にする。親プロジェクトはチームリーダーとPMOをメンバーにして課題管理などを行う
  • アンチパターン)乱発トラッカー、あるある。同じワークフローを持つトラッカーは抽象化したトラッカーにまとめる
    • 「タスク」を「設計」「実装」「調査」「作成」などに分けたくなることもあるけど、やっぱり「タスク」にしておくのがいいということかな
    • 帳票単位にトラッカーを作る(例、進捗一覧はタスク、障害一覧はバグ、課題一覧は課題)
  • アンチパターンWBSをチケット化、担当者は常に同じ
    • チケットはキャッチボールが大事、担当者と承認者とチケットの担当者は変わるもの
  • 横断的タスク
    • 小規模なら子チケットに各プロジェクトのタスクを作る
    • 中規模なら各プロジェクトごとのバージョンを作る
    • 大規模ならサブプロジェクトを作る
  • まずチケットにあげること、すればみんなが見るようになる

オープンディスカッション

司会者がいくつか設問(二択)を用意し、どちらかに挙手させ、それから意見(主張、補足、反論)をいってもらうという形式。サンデル教授の白熱教室みたいな形態です。

  • 分オーダーの作業にチケットを作るのは手間
  • 定常ルーチンでチケットは手間
  • チケットは作業の証跡を残せる
  • チケットは連絡ツールとして使える
  • マインドマップを書くイメージでチケットを作る
  • メインフレーム運用管理でバッチ投入、障害対応などは昔ロータスノーツに記載していた
  • REST APIなどを使ってなるべく自動化すれば
  • Redmineは機能多過ぎ、Wikiとチケットしか使わない
  • 一人で完結する仕事にチケットは必要か?
  • 過去の修正履歴が残っている、とくにSubversionのコミットとチケットが紐付けされているのは最強
  • 作業の依頼・報告をメーリングリストでやっているがチケットの方がいい
  • ドキュメントのレビューをチケットにしたが似たようなチケットが乱立し管理できなかった
  • 何をチケットにするかが難しい

@y503unavailable さん

複数のRedmineサーバーを立てて運用し、それを1つに統合する作業をどのようにしたのかを詳しく紹介していました。Redmineサーバーは気軽に立てられるので、立てたサーバーをあとでまとめたいといったニーズはありますが、かなりの難業になりそうであきらめていました。それを実際にやった方からの紹介だったので実は今日一番ききたい講演でした。
内容は、業務システムリプレース時のデータ移行プロジェクトをやるような感じです。とてもメモできるものではないので、資料公開を待ちますRedmine勉強会ページのリンクから発表資料(発表後修正あり)をご覧ください。以下は超断片メモです。

  • チケットIDの重複は、片方を+20000するなど重複しないようにずらします。その際、データベースでチケットIDを使用している箇所を変換表を作って変換していきます。
  • プロジェクト識別子、リポジトリ識別子は名前空間の概念を取り入れて重複しないように変換
  • チケットはRESTで登録(SQLではlft,rgtの関係でINSERTではできない)
  • 必要なテーブルを選別してダンプ
  • 親子関係付けはあとでRESTで
  • 200件程度でハッシュの衝突が発生した

@naitoh さん

Redmine 2.6および3.0の最新動向、変更点の紹介です。
実はPDF関連のたくさんの修正は、@naitohさんの貢献です。

ライトニングトーク

  • 昨日、一昨日島根で開催されたRuby World Conferenceで、基調講演者のSarah AllenさんにRedmine知ってますか、ガントチャートは?と聞いたら、ガントチャートは90年代のもの(もうプロジェクト管理には使ってない)
  • Gitではトピックブランチで作成したコードをマージリクエストとしてチームメンバーの誰かを指定してマージしてもらう。その際、テストを実施し、内容を確認したりしてもらう。
    • ピアレビューが常態化していて素晴らしい。

Redmine勉強会離脱

今日は、Redmine勉強会とJJUG CCC(日本Javaユーザーグループ主催のカンファレンス)がバッティングしている日だったので、閉会前に会場を離脱し、18:00からのセッションに飛び込みました。
Redmineは二次会がとても濃い(Redmine運用ノウハウは2次会でたっぷり意見交換できるので)ので、残念でしたが・・・