読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

実践・チケット駆動開発

雑記

せっかく Trac を使ってタスク管理とリビジョン管理をしているので、その2つを組み合わせてもっと有用に使える方法を模索している。


今試しているのは「チケット駆動開発」。
この開発方法のキモである「チケット無しのコミットは禁止」を念頭に、今回のプロジェクトではチケットを中心とした開発をしてみることにした。


約束事

といっても、いきなり大したことはできないので、今回は以下の3つの約束事を決めた。

  1. ソース改変の際は何をするのかチケットを発行すること
  2. 改変したソースにはチケット番号を振ること(コメントフォーマット:// @@@ #XX)
  3. 1つのチケットに対する改変が終わったら、コミットしてチケットを閉じること

利点

この方法による利点は次のように考える

  1. ソース(リビジョン)とタスク(チケット)の関連できる
  2. 1タスクが1リビジョンとなり、各タスクで修正したソースの差分が、リポジトリブラウザから参照できる
  3. 差分がリポジトリにできるため、ソースコード内の古い部分は思い切って消すことができる。

まとめ

開発は C言語で行っているんだけど、今までは #if 1 〜 #else 〜 #endif で変更前と変更後を両方残すようにしていた。
今回は利点3 の効果を期待して、思い切って変更前のコードは削除するようにしている。


これによってソース自体は最新版かつ余計なコメントのない見やすいものが出来上がる。
もし修正箇所を把握したいのであれば、修正箇所のコメントに "// @@@ #XX" とチケット番号を振るように決めたので、チケット番号からリビジョンログで変更を参照できる。



この方法でプロジェクトの質が良くなるかは分からないけど、昨日今日の2日間やった感じとしては思ったよりいい感触を自分の中では持っている。