11日の勉強会のあきぴーさんの発表にあった、要求をチケットで管理できないか、という話題についてつらつらと書く。
今の僕の、最大の興味は「要求をどう管理するか?」。
いろいろな人に聞いてみてはいるけど、明確な回答が得られない。
要求管理ってソフトウェアの根本のはずなのに、ないがしろにされている気がするんだ。。。
で、自分なりの考えをいくつかまとめる。
前提
- 要求は一覧として顧客、開発者がいつでも確認できる状況にあること
- 要求は、その下の工程(設計、実装)からトレースできること(できないと意味がない)
- チケットで管理する場合、開発プロジェクトとは別に管理する
- 要求の数は(おそらく)膨大になるため
- オープンされたチケットの数が多いので、精神衛生上良くない
チケットの表示方法などを工夫すれば(たとえば要件は外して表示)この限りではない
チケットで管理する場合
これは Redmine であれば、こんな感じでできるかな?というイメージ。
#Trac の場合はどうしよう^^;
- 「要求管理プロジェクト」と実際の「開発プロジェクト」を分ける
- 「要求管理プロジェクト」にチケットとして要求を登録する
- 各要求に関するタスクを「要求チケット」に対する子チケットとして「開発プロジェクト」に登録する
- 「開発プロジェクト」のチケットはすべて「要求管理プロジェクト」のチケットに関連付けられる
こうすると「要求管理プロジェクト」に「動機(なぜ)」が登録され、「開発プロジェクト」に「作業内容(なに)」が登録され、ソースで「どのように」が登録されて、ソース→作業→動機(要求)のトレースができる(かもね!?)
MS-Project で管理する場合
ゆーじさんがいろいろ試していることを参考にしたり拡張したり。
基本は ProjectTracAddIn の拡張と MasterTicketPlugin/TimingAndEstimatePlugin(WorkTimePlugin)、マイルストーンで対応できると思われる。
やりたいことは
で、この時に問題となるのが、MS-Project と Trac でのタスク粒度の違い。
#Trac と MS-Project を連携させない方が良い理由 - かおるんダイアリー
これは一緒にしようと考えるから困るのであって、最初から別物と割り切って、他の方法でつなぎ合わせればいいと思っている。
これを実現するにあたっての問題点は
- MS-Project をもう少し使い込む必要がある
- MasterTicketPlugin/TimingAndEstimatePlugin(WorkTimePlugin)を使い込む必要がある
- この2つのプラグインは UI がもっとリッチになると嬉しい人が多くなる気がする!
最終的には MS-Project ではないフリーの環境(OpenProjや次の項目など)に移行したいけど、最初は MS-Project をベースにする。
要件管理までできるような Trac のデスクトップフロントを自作する
今の最終的な目標がこれ。
MS-Project と OpenProj の問題点
- MS-Project:有料なので過程のひとつにしたい
- OpenProj:アドインなど外部からの機能拡張の手段がない
今、一番、自分の理想に近いのが ProjectSpace というツール。
このソフトはフリー版もある簡易版 MS-Project のようなもので Trac との連携もできる。
ただ、このソフトをはあくまでもデスクトップアプリとしての利用がメインであり、Trac との連携はどちらかというとオマケになっている。
このイメージで、完全に Trac のフロントエンドにしてしまいたい。
これを実現するにあたっての問題点は一つ、UI 上の問題
- ガントチャートをどうやって自分で制御(表示)するか
これが解決できれば取り掛かれそうなんだけどねぇ^^;
まとめ
イメージは出来てるので後は実際にやってみることと、作りたいものについては実現方法を見つけたい。