そろそろプロジェクト管理ツール群について一言言っておくか

題名は、ただ使いたかっただけですw

最近、タスク管理やらテスト管理やらに非常に興味をそそられています。で、頭の整理を兼ねて、ちょっとまとめてみました。コメント・異論・反論ある方は、是非お願いします!

なお、このエントリはあきぴー氏のアジャイル開発の弱点をプロジェクト管理サーバーが助ける: プログラマの思索にものすごく触発されています。


概要

自分が考えている、システム開発をサポートするツール群の概要・関連はこんな感じ。なお、想像しやすいように各ツールの代表的な製品名を記載しているけど、別にこの製品を使わなきゃダメってことは当然ありません*1

f:id:ikikko:20090406004625p:image

開発者にとっての中心は、タスク管理ツール。ここを見ることによって、自分が何をしなければいけないかを常に把握する。作業内容はバージョン管理に記録され、それらがCIツールで結合・テストされて結果がタスク管理に表示される。もし何か問題があれば、タスク管理で即座に発見することができると。

また、タスク管理ツールだけで作業内容全部を支援することは効率的でないので、何か新しいツールが必要ならば導入することも検討(例えばレビュー支援ツールなど)。ただし、タスク管理ツールと連動することを前提に考える必要がある。そうでないと、タスク管理ツールにタスクが一元管理されず、何をすればよいかが曖昧になるため。

受入テスト担当者にとっての中心は、テスト管理ツール。ただ、この辺は以前触れたように、経験不足のためにちょっと分かりませんorz。テスト管理ツールだけでやるべきこと(タスク)の管理が把握できるか?とか色々疑問はあるのですが…

ツール間の連携

大事なことは、各ツール群が自然な連携が取れていること。言い換えると、あるツールAから別のツールBの関連する情報を参照したくなったときに、余計な手間が取られないということ。TracからSubversionリポジトリへのハイパーリンク参照が代表的なものでしょう。あとは、Hudsonのビルド情報をTrac上に表示する機能とか。

Excel管理の欠点の一つとして、ここがあげられるのかなと思っています。Excelでタスク管理をした場合って、各タスク間の関連づけすらしにくいですよね。例えばタスクAがタスクBに関連していたとすると、タスクAにはタスクBのIDか何かを概要にでも記載するでしょう。けれど、じゃあタスクBを実際に参照するには、いちいちタスクBのありかを自分で検索して開く必要があります。

ましてや、Excel管理ではタスクからソースコードへの参照なんて普通ではできないし、無理やりやってもコストがかさむだけでしょう。

足りないもの

多分、登場人物が圧倒的に足りないw。小規模ならばこれだけでもいいかもしれないけど、大規模になればなるほど登場人物が増えてくるでしょう。

すぐに思いつくのは、PM(プロジェクトマネージャー)。タスク管理とかテスト管理とかの情報を参照して、プロジェクト計画を立てるのでしょう。ただ、これらの情報は開発者やらテスト担当者やらのタスクに特化し過ぎていて、PMが管理するにはちょっと細かすぎるのではと考えています。

あと、これらツール群の管理責任者は誰になるのでしょう?一開発者がこれら全てを管理していくことは、結構な負担になると思います。これらツール群に精通している人を専任で当たらせるのが理想だけど、大体そのような人は開発者としても一流なので専任でやらせるのはもったいないんですよね…


つらつら書いてきましたが、あくまで頭で考えているだけであきぴー氏のように実際の現場で試せたわけではありません。こういったものは、実運用で試しながら洗練させていく必要があると思ってますし。

とは言っても、そもそもの知識が無いといざというときに素早く動けないですよね。現状にあまんじて一向に改善のアイデアも浮かばないでしょう。

で、毎回同じ結論に至って自分でもちょっと飽き飽きしていますがw、来るべきときのために刃を磨いておこうと思います。まずは、中心となるタスク管理(バグ管理)についてじっくり考察する!この前買った本、非常に面白いです。読み終わったら、また感想文をエントリで起こす予定なので、ご期待あれ♪

実践バグ管理―プロジェクトを成功に導くための

実践バグ管理―プロジェクトを成功に導くための

*1:タスク管理にTracを使おうがRedmineを使おうが、本質的なものは大して変わらない