« 再見積もり、Velocity、そしてアジャイルな契約 | トップページ | メール駆動開発は時代遅れではないか »

2011/11/23

Redmine Commit Relation Editor Pluginで変更管理を強化する

@haru_iidaさんがRedmine Commit Relation Editor Pluginという有用なプラグインをリリースされたのでメモ。

【元ネタ】
Haru's blog: Redmine Commit Relation Editor Plugin 0.0.1をリリースしました。

r-labs - Commit Relation Editor - Redmine

Twitter / @kzgs: MLで以前質問していたものがまさに見つかった感じです RT @haru_iida: Haru's blog: Redmine Commit Relation Editor Plugin 0.0.1をリリースしました。 http://bit.ly/vqzxjT

(引用開始)
Redmineではリポジトリのコミットメッセージにチケット番号を入力することでコミットとチケットの関連付けを行うことができます。チケット駆動開発の合言葉「No ticket, No commit」が示すようにこの関連付けは非常に重要です。
しかしコミットメッセージに入力するチケット番号を間違えたり、番号を入れ忘れたりすると後から関連付けを修正することができず悲しい思いをします。
このプラグインを使用するとリポジトリブラウザ上から新たにチケットを関連付けたり既存の関連付けを削除したりできるようになります。
(引用終了)

チケット駆動開発の発端となった運用ルールである「No ticket, No commit」を実践する場合、コミットログに「refs #12」「fixes #23」のようにチケットNoを書くようにする。

しかし、チケットNoを誤って書いたり、#を大文字で書いたり、間違える時がある。
すると、せっかくの変更履歴が本来のチケットとリンクしなくなる弱点があった。
現状は、チケットに本来のリビジョンを「r123」のように書いてチケット画面からリンクするする手法しかフォローすることができなかった。

だが、上記のプラグインのおかげで、間違ったチケットNoでコミットログを書いても、後から修正できるようになる。
そうすれば、チケットとバージョン管理のリビジョンを本来のあるべき姿でリンクさせることができるから、トレーサビリティを強化することができる。

このトレーサビリティという概念は最終的には変更管理プロセスを補強することにつながる。
何故なら、例えば、何故こんな汚いパッチを当てたのか、何故本来の要件がこんな複雑な仕様になってしまったのか、という変更履歴をチケットと成果物の修正履歴から辿ることができるからだ。
その作業によって、例えば、今回のバグ修正では過去のパッチを安易に修正してはいけない、とか、技術上の制約から本来の要件が現在の仕様に変わったので今回の仕様変更も同様に考慮する必要がある、などと言った判断を自信を持って説明することができる。

アジャイル開発では、頻繁なリファクタリングと小刻みな機能改善を同時並行で開発しているので、ソースはどんどん成長して変化していく。
だから、Git/Mercurialで並行開発をサポートするだけでなく、RedmineやTracで変更履歴を後から調査しやすくする環境を作ることはとても重要だと思う。

|

« 再見積もり、Velocity、そしてアジャイルな契約 | トップページ | メール駆動開発は時代遅れではないか »

Redmine」カテゴリの記事

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

Agile」カテゴリの記事

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: Redmine Commit Relation Editor Pluginで変更管理を強化する:

« 再見積もり、Velocity、そしてアジャイルな契約 | トップページ | メール駆動開発は時代遅れではないか »