« Tracのワークフロー | トップページ | メトリクスの威力 »

2009/01/24

Redmineにお勧めソース機能が欲しい

今日、XP祭り関西2009が無事終了した。
参加してくれた人、ありがとう!

「チケットファーストでアジャイル開発!」で講演した時、ぽろっと話した「お勧めソース機能」を参加者の一人から質問されたので、メモしておく。

【仕様】
Redmineのリポジトリ欄で、選択したソースを表示した時、関連する他ソース一覧を表示する。
具体的には、そのソースを過去に修正した全てのソースのうち、

・同じチケットでコミットされたソース
・同じリビジョンで何度もコミットされているソース

で頻度が高い順番に表示する。

【要件】
本来のイメージは、Amazonのお勧め商品やiTunesのお勧め曲の表示機能みたいなもの。
例えば、Amazonの商品画面では、「この商品を買った人は過去にこんな商品も買っています」という商品が頻度の順に表示される。
iTunesでも同様に、この曲をダウンロードした人は、他にこんな曲もダウンロードしてます、みたいな機能がある。

この機能は、商品や曲のようなデータと関連性のあるデータを頻度の順に表示して、消費者へ他の商品も買うように勧める。
昨今の小売系Webシステムでは、販促として重要視される機能。

この機能のアーキテクチャの本質はデータマイニングであり、例えば、レコメンドエンジンとして既によく知られている。
たくさんのトランザクションデータが溜まるほど、質の高い関連データを表示することができる。

このデータマイニングの手法をソフトウェアに応用した場合、どこに使いたいか?

僕が欲しい機能は、一つのソースを修正した時、関連する機能やソースを洗い出す場合に、この手法を応用したい。
つまり、このソースを修正する時、過去にこんなソースも併せて修正しています、と関連ソースが一覧表示されると嬉しい。

というのも、実際の運用保守では、簡単な仕様変更であっても、影響範囲が広くて工数がかかる場面はよくあるから。
例えば、注文画面を修正した時、注文の業務ロジックだけでなく、実は共通ロジックにも影響していたという関連する機能調査に使いたい。

この時、RedmineチケットとSVNリビジョンが紐づいているデータはDBに格納されているので、強力な変更管理として使える。
つまり、ソースからチケット、更には仕様や要件まで追跡可能。

この時に、一つのソースを修正しようとした時、過去にこんなソースも一緒に直してますよ、という情報がポップアップ表示できると、開発者は自ら注意して調べるようになる。

よくある例は、1次開発でたくさんバグ修正した機能は、2次開発で修正する時もバグが出やすいこと。
その時に、過去にバグ修正した機能を触る時、開発者も自ら気をつけてくれるようになる。

今はRedmineにそんな機能はないけれど、インフラは既にあるし、SVNリビジョン回数が多いほど、関連ソース表示機能は有用になる。

チケット駆動開発が指摘した「ソースとチケットの紐づけによる変更管理」機能には、物凄いポテンシャルがあると思う。

|

« Tracのワークフロー | トップページ | メトリクスの威力 »

Redmine」カテゴリの記事

チケット駆動開発」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Redmineにお勧めソース機能が欲しい:

« Tracのワークフロー | トップページ | メトリクスの威力 »