一人で案件を回すことになったため、RedmineとGitHub周りの機能を試しながら使い倒して気づいたことのメモ。(他のプロジェクトであまりRedmineが活用されていなくて、ただひとりのヘビーユーザになってしまった...)
1.バージョンを切ろう
どんな仕事にも〆切があるはず。なくても暫定の〆切をつくって、そこまでの作業をバージョンして区切れば、そのときまでやるべきことがはっきりする。
2.タスクが見えたらチケット化しよう
作業・タスクはどんどんチケットにする。やるべきこと、やったことが見える化される。見える化されてないものがたくさんあると、何で時間がかかっているのか、問題があるのかわからなくなってしまう。
3. チケットに担当者を割り当てる
どのタスクが、誰がボールを握っているのかをはっきりする。野球の「お見合い」みたいなことでタスクをとりこぼすことを防げる。個々人の負荷や進捗率も見える化される。
4. チケットの予定終了日をいれる
暫定でもいいので、終了日をいれよう。進捗の遅れなどの問題を発見する足がかりになる。
5.予定工数をいれよう
ざっくりでもいいので、工数を見積もっていれよう。予実管理ができるようになる。
6.作業時間をいれよう
かかった時間はいれる。見積もりとの差異が見えるようになる。負荷になっていないか、ボトルネックになっていないかを気づくきっかけにもなる。
時間計測をするサービス
Redmineのプラグインにも同様のものがある。
作業自体に集中するには、こういうのを使うと便利。
7.タスクをまとめるチケットをつくろう(親子チケット)
大きなタスクを扱うチケットも必要になる。その場合は、サブタスクをその子チケットとして登録する。自動で、子チケットの進捗の総和が、親チケットの進捗率となる。サブタスクに分割にすることによって、作業内容がわかりやすくなるし、分担もしやすくなる。
8.チケットを終了するルールを決めよう
なあなあでチケットを終わらせないと、今やるべきことが埋もれてしまう。関係者と相談して、終わらせるルールを事前でも途中でもいいから、決める。チケットごとに関係者と終了してよいかも随時やりとりして、都度終了させていく。
9.チケットを見直してちゃんと終了させよう
バージョンの終了日前後で見直して、残っているチケットを終了させていくか、次に持ち越すかに振り分けていく。今のバージョンのすべきことが消化しきるようにする。
10.ひとつのチケットではひとつの話題のみ
例えば、テストの実行とテスト仕様書の修正をひとつのチケットでやりとりすると、扱う量も多くなるし、違う話題が混ざってとりこぼしが起きやすい。やたらやりとりが多いお化けチケット、God object的なチケットになってしまう。
タスクの切り分けを習慣づけるためにも、違う話題と感じたら、別チケットに切り出してそちらに議論を移す。
11.コミット(リビジョン)とチケットは関連づけよう
GitHubとRedmineを連携させ、コミットメッセージにはチケット番号を必ずつける。
そうすれば、改修・実装漏れが起きにくくなり、ソースの意図がチケットから読み取れるようになる。
12.設計や仕様はwikiで共有しよう
wordなどにまとめるよりも、差分を追えるRedmineのwikiに書く方が、変更がおきても対応しやすく、その経過をおいやすい。
13.進捗管理など、間接業務の時間をいれるチケットを用意
開発そのものでない作業や、細切れの曖昧な作業につけるためのチケットを用意しておくと、開発作業にかかる時間とそれ以外を区別できるようになる。
参考サイト
アンチパターン
活用事例など